遇到Mysql启动异常问题,可以从以下几个方面依次进行问题排查:
(1)如果遇到“Can't connect to local MySQL server through socket '/tmp/mysql.sock'”类似问题,查看Mysql配置文件(默认在/etc/my.cnf目录下),使用命令vi /etc/my.cnf,查看是否具备如下配置,
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
可能其存在访问权限问题,故对其建立软连接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
(2)使用命令:systemctl status mysql.service查看mysql服务是否正常(在重装Mysql时,存在服务假启动现象,可以执行systemctl restart mysql.service查看Mysql是否能正常启动)。若无法正常启动,查看并分析其报错原因。
(3)若对于(2)过程中,无法查看失败原因的。从系统日志(默认目录在:/var/log/message)和Mysql日志文件中进行查看(默认目录在:/var/log/mysql/error.log),分析原因。
(4)若(3)不奏效,可以直接使用/usr/sbin/mysql运行Mysql可执行脚本对Mysql进行启动,查看具体报错原因。
(5)最后,使用ps -ef|grep mysql 查看是否有其他进程占用,导致Mysql无法启动。直接使用kill -9 [进程ID]杀掉进程,再执行(4)操作,看是否能够启动Mysql。
如果经历了上述步骤,发现问题依旧没有解决,有个万能解决方案,先把Mysql卸载,然后重装。如何完全卸载Mysql服务,步骤如下:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo apt-get autoremove mysql* --purge //注:如果这个步骤无法正常执行,可先执行apt-get remove mysql-server*
sudo apt-get remove apparmor
sudo apt-get install mysql-server mysql-common