今儿清理服务器上的废弃文件,不知道动了mysql的什么文件,重启mysql进程时提示:php
Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/l/JJonline.pid).
就抓狂了,服务器上的几个网站还跑着了,mysql启动不了这不歇菜了。找了找相关这种问题的资料,这里作下总结。mysql
这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,还没有初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种状况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。linux
个人mysql安装后的配置文件中关于datadir项目的配置以下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着缘由,后来打开该配置文件才发现,其中的datadir项目被篡改为/var/mysql/data了.....sql
[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql
这种状况我不多遇到,若存在mysql进程但有不提供mysql服务(表现为其余客户端链接不上mysql服务器,例如php链接mysql时提示“链接失败”),这个时候就要看看有没有存在的mysql僵尸进程了,命令以下:shell
ps -ef|grep mysql
若存在,该命令执行后会列出存在的僵尸进程,kill -9 `pid`掉便可。centos
这种状况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,通常来讲运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法以下:服务器
chown -R mysql.mysql /data/mysql ##该命令仅为示例,其中/data/mysql就是mysql配置文件中datadir的目录 ##若为空,则默认为mysql安装目录下的data文件夹下
这种状况发生于mysql被覆盖安装或升级后,固然mysql无端宕机后也会有这种状况,可能会影响mysql启动的数据文件,通常存在于mysql的数据存储目录(这个目录依据my.cnf配置文件中的datadir而异),也就是存在于mysql数据存储目录下的mysql-bin.index文件,删除之便可。socket
selinux不甚了解,直接关掉。网站
##方法1:永久关闭seliux ##修改 vi /etc/selinux/config #文件中设置SELINUX=disabled ,而后重启服务器 ##方法2:暂时关闭seliux setenforce 0 ##如需每次开机都铃声关闭seliux,则能够在/etc/rc.d/rc.local文件中添加该命令
这是今天在群里的一个朋友出现的,特汇总于此;当mysql开启了二进制日志而且mysql在运行状态下用rm命令删除过mysql的binary日志文件的话,下次重启mysql你就悲剧了。ui
什么是binary日志?说白了就是mysql的数据目录下的mysql-bin.00000一、mysql-bin.000002的文件,下图所示。
解决方法就是修改配置文件临时关闭binary-log,而后删除mysql数据目录下的全部相似mysql-bin.00000一、mysql-bin.000002的文件后再次重启,mysql便可启动成功。
#mysql配置关闭二进制日志 找到以下语句 注释掉便可 #log-bin=mysql-bin #binlog_format=mixed
此步骤操做完毕以后,若还须要启用二进制日志,那么就要先停掉mysql服务,而后修改msyql的配置文件,再次重启便可。
另外再附上正确删除mysql二进制日志文件的方法(绝对不是rm -rf命令直接删这些文件):
#第一步 经过shell或cmd登陆进mysql 这步没什么好说的 msyql -u root -p *** #第二步 在mysql下直接执行清理binary日志命令 mysql> reset master #注意:此处仅针对单台mysql而言,如有互备mysql 则执行该命令有风险
各位访客若遇到上述还没有提到过的状况,请留言反馈!