error “Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/yourservername.pid)”主要解决这个报错后边的文件位置可能由于安装位置等略有不同,大家根据自己的实际情况判断
这种情况一般发生在MYSQL被强制kill掉或者是版本更新之后造成的。主要是MySQL 数据目录中的权限和所有权不足问题。MySQL 数据目录中的 PID 文件已消失,没有它,MySQL 的操作也不会消失。默认 MySQL 数据目录是 /var/lib/mysql/。您可以在 MySQL 数据目录中看到”.err”文件。这是 MySQL 错误日志,它将给出 MySQL 失败的确切原因。我将在下方放一个启动失败的报错。
$ service mysql restart
ERROR! MySQL server PID file could not be found!
Starting MySQL… ERROR! The server quit without updating PID file (/var/lib/mysql/server.vasco.com.pid)
解决方案
当我们重启MYSQL时遇到这个错误,我们查看资料会发现这个问题的解决方案有很对,但是网络上的文章很少有完整的流程,我将在这里给大家提供一个比较完善的流程大家根据情况逐步执行,执行一步尝试重启一次,以测试问题是否完美解决。同时建议大家养成好习惯在可能有危险性操作时对目录做备份。
<1>建议首先使用SSH工具远程登入服务器,然后尝试手动启动数据库,这里提供两条命令大家任选其一,也可以逐一尝试。
$ /etc/init.d/mysql restart
$ service mysql restart
<2>如果我们上述的两条命令不能重启,我们要考虑是不是MYSQL进程已被卡死,如果存在运行中的MYSQL进程的话必须先杀死这些进程才能重启。
$ ps -aux | grep -i mysql
#查看musql的进程号
如果显示存在我们需要杀死这些进程,杀死命令如下
$ kill -9 PID
#PID为mysql上边查询出来的进程号
<3>检查MYSQL数据目录权限,所有者是不是mysql,如果是root用户则需要变更为mysql用户。
$ ll -aF /var/lib/mysql/
如果其所有者是 root,则应使用以下命令将所有权更改为 mysql用户或提前设定的数据库用户。
$ chown -R mysql /var/lib/mysql/
<4> 备份 mysql.sock 文件然后将其删除。可以参考下方提供代码
$ cp /var/lib/mysql.sock /var/lib/mysql.sock_bkp
$ rm -rf /var/lib/mysql.sock
<5> 删除 MySQL 配置文件,删除之前记得备份。
$ mv /etc/my.cnf /etc/my.cnf.bak
$ rm -rf /etc/my.cnf
# 注意有些服务器为了安全可能不支持执行rm -rf命令可以根据实际删除方式删除配置文件
<6>备份mysql数据目录/var/lib/mysql/ 目录然后删除其中中名为 ib_logfile 的日志文件,然后尝试重新启动mysql服务,一般mysql重启之后会重新生成日志文件。
<7>在 MySQL 数据目录 /var/lib/mysql/中查找后缀为”.err”的日志文件。这些文件包含实际的错误消息。您可以尝试删除这些报错内容之后重启服务。