Centos下Mysql因为pid文件启动失败问题解析

问题描述

1. 启动问题

服务器经过一次重启,然后再次使用以下命令开启Mysql,出现错误。

> service mysql start
Starting MySQL.. ERROR! The server quit without updating PID file (/var/run/mariadb/mariadb.pid).

2. Mysql错误日志

查看Mysql错误日志文件

> cat /var/log/mariadb/mariadb.log

打印

...
171112 11:18:38 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2)
171112 11:18:38 [ERROR] Can't start server: can't create PID file: No such file or directory

问题分析

不管是直接启动Mysql反馈的错误信息,还是错误日志里的报错信息,信息中都指向了Mysql的PID文件。而笔者直接去查找相应的文件,确实不存在。

不存在的路径/文件如下:

/var/run/mariadb/
/var/run/mariadb/mariadb.pid

笔者使用root权限登录Centos系统,所以手动创建相应的路径和文件后,重启Mysql,问题依旧。且刚刚创建的路径和文件都被删除。

由此可见,应该是路径文件的权限出现了问题。

解决方法

给PID所在的路径添加mysql属主与属组的权限

> mkdir /var/run/mariadb
> chown mysql.mysql /var/run/mariadb/

重启Mysql,启动成功!

> service mysql start
Starting MySQL.. SUCCESS!

推荐阅读更多精彩内容