最近检查一台机器发现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 .   查询硬盘使用情况,如果确定占用了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”  然后重新启动mysqld!这个我遇到比较少,除非是MYSQL安装权限出现问题

5、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
6、/etc/my.cnf配置文件出现问题,没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data