最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

记一次使用xampp安装的MySQL启动失败问题排查

XAMPP案例 admin 148浏览 0评论
xampp mysql 启动失败问题排查:
linux Can't connect to local MySQL server through socket '/opt/lampp/var/m...
问题背景
这个项目是某省教育考试院的门禁管理系统,采用PHP+MySQL技术栈开发,服务部署在Linux系统上,保密级别特别高,远程连接需要使用内部工具连接到堡垒机,再从堡垒机远程服务器。
负责这个项目的开发人员已全部离职,PHP部门解散,当初的开发公司只留下一份最早的部署文档。而我作为接手这个项目的项目经理,并不懂PHP语言开发。

问题现象

 

首先是网站页面打不开,报错信息:
Unable to connect to your database server using the provided settings.
这个问题是很好解决的,按照提示,找到报错的文件和行:
root@menjin:/data/wwwroot/face360/system/core# vim Loader.php
找到数据库配置文件
vim /application/config/database.php

修改:

$db['default']['pconnect'] = TRUE;$db['default']['db_debug'] = TRUE;

修改后:

$db['default']['pconnect'] = FALSE;$db['default']['db_debug'] = FALSE;

此时可以打开网站了,但是无法登录,提示帐号密码错误,但可以肯定帐号密码是对的。于是怀疑是数据库出了问题没有正常启动,马上用xshell 和xftp工具连接linux服务器看下,启动xampp mysql,命令:
/opt/lampp/lampp startmysql

/opt/lampp/bin/mysql.server: line 260: kill: (11145) - No such process
执行mysql start命令
mysql start //进入bin目录,执行mysql start命令,提示错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2 "No such file or directory")

问题分析

xampp程序以及配置文件都没有任何改动,前几天,网站还正常运行,今天就莫名其妙的显示mysql无法正常连接。初步判断不是程序的问题。

所以第一步开始去排查服务器的系统盘占用情况

df -l –执行命令,查看系统盘空间占用情况

结果发现:系统盘被占用了100%
在根目录执行命令,看下具体子目录占用大小情况:
du -s -h ./*
经过一层一层排查,知道了是Tomcat日志文件过大导致的。具体过大文件在:/usr/java/tomcat/apache-tomcat-8.5.30/logs 路径下面。
先关闭Tomcat进程,然后删除日志文件。因为被进程占用的话,即使删除了日志文件,以后会显示系统盘被占用100%
再次执行命令
df -l 或者 df -lh

经过上面的步骤,继续启动xmapp mysql发现,依然没用,怎么回事?
这次要拿出杀手锏来了,分析mysql启动日志
启动日志路径在:
/opt/lampp/var/mysql
利用Notepad ++打开改文件,或者利用linux自带的vim打开。
日志文件:
2018-12-24 10:50:50 10085 mysqld_safe Starting mysqld daemon with databases from /opt/lampp/var/mysql2018-12-24 10:50:50 140491172915008 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.2018-12-24 10:50:50 140491172915008 [Note] Using unique option prefix 'key_buffer' is error-prone and can break in the future. Please use the full name 'key_buffer_size' instead.2018-12-24 10:50:50 140491172915008 [Note] /opt/lampp/sbin/mysqld (mysqld 10.1.37-MariaDB) starting as process 10231 ...2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Using mutexes to ref count buffer pool pages2018-12-24 10:50:51 140491172915008 [Note] InnoDB: The InnoDB memory heap is disabled2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins2018-12-24 10:50:51 140491172915008 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Compressed tables use zlib 1.2.112018-12-24 10:50:51 140491172915008 [Note] InnoDB: Using SSE crc32 instructions2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Initializing buffer pool, size = 16.0M2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Completed initialization of buffer pool2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Highest supported file format is Barracuda.2018-12-24 10:50:51 140491172915008 [Note] InnoDB: 128 rollback segment(s) are active.2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Waiting for purge to start2018-12-24 10:50:51 140491172915008 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.41-84.1 started; log sequence number 176668152018-12-24 10:50:51 140491172915008 [Note] Plugin 'FEEDBACK' is disabled.2018-12-24 10:50:51 140491172915008 [Note] Recovering after a crash using tc.log2018-12-24 10:50:51 140491172915008 [ERROR] Can't init tc log2018-12-24 10:50:51 140491172915008 [ERROR] Aborting2018-12-24 10:50:53 10085 mysqld_safe mysqld from pid file /opt/lampp/var/mysql/izuf655vwf6dndsynw1j3mz.pid ended
问题关键出来了: Can’t init tc log
在目录下/opt/lampp/var/mysql 找到 这个文件,删除即可!
然后重启xammp mysql 启动正常
/opt/lampp/lampp startmysql
总结
1)清除linux服务器上的无用的日志文件,这里主要是tomcat日志文件产生的,因为我的服务器同时部署了xampp以及tomcat
2)分析mysql错误日志文件,然后针对性的对错误进行解决。但是问题的根本原因是因为系统盘被tomcat日志文件占用导致,所以部署tomcat程序的时候,要特别注意限制日志文件的输入,控制其大小,否则会导致系统盘被占满,网站不可用。

转载请注明:XAMPP中文组官网 » 记一次使用xampp安装的MySQL启动失败问题排查