有时候Mysql突然崩溃导致网站访问不了,当重新启动的mysql提示报错:The server quit without updating PID file,现在大体分析总结以下9种故障原因及解决办法:
1、磁盘空间满了,因为日志或者网站缓存等原因导致磁盘空间写满,硬盘使用率达100%,Mysql无法工作,崩溃罢工,这时要么删除日志缓存文件或者扩容硬盘。
解决方法:先用df命令查看硬盘空间,确认为此类问题,找到占用比较大的文件用echo命令直接写空清除文件内容,然后重启mysql
一般命令:df ,du ,echo,service mysql restart,即可。
2、可能是/usr/local/mysql/data/mysql.pid文件(根据自己服务器配置)没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
3、可能进程里已经存在mysql进程(往往是mysql非常正常退出导致的)
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
4、可能是在机器上二次安装了mysql或者升级mysql版本操作有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !
5、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
6、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
7、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
8、selinux惹的祸,如果是centos系统,通常都是会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
9、非正常原因服务器重启或者数据写入导致mysql崩溃,innodb引擎损坏需要修复,
解决方法:在mysql的配置文件my.cnf里找到 [mysqld]字段下,添加 innodb_force_recovery=1:然后重启mysql,重启成功。然后使用mysqldump或 pma 导出数据,执行修复操作等。修复完成后,务必要把该参数注释掉,还原默认值0,不然数据库读写会出错。
友情提醒:大家在遇到mysql问题时,务必第一时间分析查看错误日志,很多问题都可以在日志里反应来。