您的位置:晶晶的博客>Linux>centos下mysql启动失败的问题总结

centos下mysql启动失败的问题总结

点击查看原图

今儿清理服务器上的废弃文件,不知道动了mysql的什么文件,重启mysql进程时提示:

Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/l/JJonline.pid).

就抓狂了,服务器上的几个网站还跑着了,mysql启动不了这不歇菜了。找了找相关这种问题的资料,这里做下总结。

一、my.cnf配置文件datadir项配置错误或被启动脚本篡改

这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,尚未初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种情况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。

我的mysql安装后的配置文件中关于datadir项目的配置如下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着原因,后来打开该配置文件才发现,其中的datadir项目被篡改成/var/mysql/data了.....

[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql

二、进程里已经存在mysql进程

这种情况我很少遇到,若存在mysql进程但有不提供mysql服务(表现为其他客户端连接不上mysql服务器,例如php连接mysql时提示“连接失败”),这个时候就要看看有没有存在的mysql僵尸进程了,命令如下:

ps -ef|grep mysql

若存在,该命令执行后会列出存在的僵尸进程,kill -9 `pid`掉即可。

三、mysql的数据存储目录权限不足

这种情况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,一般来说运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法如下:

chown -R mysql.mysql /data/mysql ##/data/mysql是mysql中datadir ##为mysql的data

四、覆盖安装或升级mysql后,残余数据的影响

这种情况发生于mysql被覆盖安装或升级后,当然mysql无故宕机后也会有这种情况,可能会影响mysql启动的数据文件,一般存在于mysql的数据存储目录(这个目录依据my.cnf配置文件中的datadir而异),也就是存在于mysql数据存储目录下的mysql-bin.index文件,删除之即可。

五、selinux的问题,centos下最容易出现

selinux不甚了解,直接关掉。

##法1闭seliux ## vi /etc/selinux/config #置SELINUX=disabled  ##法2闭seliux setenforce 0 ##闭seliux/etc/rc.d/rc.local

六、mysql运行状态下删除binary日志后重启失败

这是今天在群里的一个朋友出现的,特汇总于此;当mysql开启了二进制日志并且mysql在运行状态下用rm命令删除过mysql的binary日志文件的话,下次重启mysql你就悲剧了。

什么是binary日志?说白了就是mysql的数据目录下的mysql-bin.000001、mysql-bin.000002的文件,下图所示。

解决方法就是修改配置文件临时关闭binary-log,然后删除mysql数据目录下的所有类似mysql-bin.000001、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 

各位访客若遇到上述尚未提到过的情况,请留言反馈!

转载请注明本文标题和链接:《centos下mysql启动失败的问题总结
分享到:

相关推荐

哟嚯,本文评论功能关闭啦~

  1. #1

    赞楼主,总结得很好!多谢。

    sanorchid 9年前 (2015-09-15) 回复