首页 > 代码库 > MySQL启动故障解决

MySQL启动故障解决

今天在启动mysql的时候,使用/etc/init.d/mysqld start 报错

Starting MySQL (Percona Server).mkdir: cannot create directory `/var/lib/mysql: File existschown: cannot access `/var/lib/mysql: Permission deniedchmod: cannot access `/var/lib/mysql: Permission deniedrm: cannot remove `/var/lib/mysql/mysql.sock: Permission denied ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).

一看这种是权限问题,但查看发现目录权限已经是对的

查看启动脚本,是启动的时候调用/usr/bin/mysqld_safe启动进程,两个都是shell脚本,改用调试模式执行

发现在目录判断的时候会失效

技术分享 

实际上这个目录是存在的,查看启动失败的日志

技术分享

也是权限问题,但目录权限正确,所以可能的问题就出在启动mysql_safe脚本的时候导致某些问题的出现

换用以下方式启动

[shell#] sh /etc/init.d/mysqld start 

发现启动成功,这种情况相当于直接以root用户启动,查看了相关,发现时selinux组织了mysql对相应的目录权限的访问,

因为这里我们用不上selinux直接关掉,临时关掉的方式如下:

[shell#] setenforce 0

永久关掉需要修改 /etc/selinux/config 再重启机器就好

SELINUX=disabled

也可以打开相关目录的权限

[shell#]chcon -R -t mysqld_db_t  dir

再启动便不会报错

MySQL启动故障解决