最近检查一台机器发现 MySQL
无故 down
掉,日志中没有明显的错误提示,只是在一个时间挂了后就一直提示各种连接失败
奇怪的是挂了为什么还能继续写日志,没有分析出什么原因,只好先重启,但是遇到了一个提示
#/etc/init.d/mysql start
The server quit without updating PID file
日志中显示
2017-09-26T16:31:09.095545Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
2017-09-26T16:31:10.942991Z mysqld_safe mysqld from pid file /usr/local/mysql/var/izuf6hoei1thnpgaypggjdz.pid ended
之前有遇到过几次最常用的有几个原因
原因1、硬盘满了
通过 df -h
查询硬盘的使用情况,如果确定占用了 100%
就要清理硬盘中无用的数据,释放一定量的空间给 MySQL
了
原因2、有残余数据影响了服务的启动
mysql-bin.index
中有索引了几个文件,其中有个文件出现了错误,最简单的办法就是删除所有的 mysql-bin.*
的文件
你也可以先做个备份再删除,然后尝试启动
原因3、innodedb
的日志文件出错
ib_logfile0、ib_logfile1
先备份后删除,并尝试启动
原因4、可能是 /usr/local/mysql/var/mysql.pid
文件没有写的权限
执行下面的指令
chown -R mysql:mysql /var/
chmod -R 755 /usr/local/mysql/var
然后重新启动 MySQL
!这个我遇到比较少,除非是 MySQL
安装权限出现问题
原因5、selinux
惹的祸
如果是 CentOS
系统,默认会开启 selinux
解决方法:关闭它,打开 /etc/selinux/config
,把 SELINUX=enforcing
改为 SELINUX=disabled
后存盘退出重启机器试试
原因6、/etc/my.cnf
配置文件出现问题,没有指定数据目录(datadir
)
解决方法请在 [mysqld]
下设置这一行
datadir = /usr/local/mysql/data
参考链接:http://yoff.cn/article/6.html