MYSQL启动错误:Starting MySQL.The server quit without updating PID file (/[FAILED] 之解决

本文解决了一个常见的MySQL服务启动问题,由于文件权限设置错误导致服务无法正常运行。通过检查和修改/var/lock/subsys/mysql的权限,成功启动了MySQL服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日重启虚拟主机后,发现MYSQL没起来。于是开始查,环境(LNMP,centos6.8)

  1. 查看mysql状态,发现没有起来,有报错:/var/lock/subsys/mysql[FAILED]

[root@web130 var]# service mysql status
MySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED]

  2.启动mysql试试,发现起不来,有报错:The server quit without updating PID file (/[FAILED]


[root@web130 ~]# service mysql start
Starting MySQL.The server quit without updating PID file (/[FAILED]l/mysql/var/web130.tang.com.pid).

3.查看mysql日志,默认mysql使用错误日志名 host_name.err 并在数据目录中写入日志文件,LNMP环境mysql数据库文件和错误日志在:/usr/local/mysql/var/ 这个目录下,发现:File './mysql-bin.~rec~' not found (Errcode: 13),提示:MYSQL_BIN_LOG::open_purge_index_file failed to open register  file,通过网络查阅得知可能是无权限。4

[root@web130 var]# tail -fn50 web130.tang.com.err

/usr/local/mysql/bin/mysqld: File './mysql-bin.~rec~' not found (Errcode: 13)
190125  3:22:17 [ERROR] MYSQL_BIN_LOG::open_purge_index_file failed to open register  file.
190125  3:22:17 [ERROR] MYSQL_BIN_LOG::open_index_file failed to sync the index file.
190125  3:22:17 [ERROR] Aborting

190125  3:22:17 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

4.查看文件权限,发现var目录里的文件权限正常!

[root@web130 var]# ll
total 84112
drwx------ 2 mysql mysql     4096 Dec  4  2017 cms
-rw-rw---- 1 mysql mysql 18874368 Jan 14 00:05 ibdata1
-rw-rw---- 1 mysql mysql 33554432 Jan 14 00:05 ib_logfile0
-rw-rw---- 1 mysql mysql 33554432 Nov  6  2017 ib_logfile1
-rw-rw---- 1 mysql mysql    41416 Dec 27  2017 localhost.localdomain.err
drwx------ 2 mysql mysql     4096 Nov  6  2017 mysql
-rw-rw---- 1 mysql mysql    29155 Jan 13 20:42 mysql-bin.000049
-rw-rw---- 1 mysql mysql     2728 Jan 13 23:44 mysql-bin.000050
-rw-rw---- 1 mysql mysql       38 Jan 14 04:44 mysql-bin.index
drwx------ 2 mysql mysql     4096 Nov  6  2017 performance_schema
drwx------ 2 mysql mysql     4096 Dec  6  2017 tylw
-rw-rw---- 1 mysql mysql     1313 Dec 27  2017 web130.err
-rw-rw---- 1 mysql mysql    24625 Jan 24 22:18 web130.tang.com.err

5.陷入思索和搜索中,想起在windows下经常发生文件有权限而目录没给权限导致无法写入的事情,于是查看年了var目录的权限。发现var目录属性被改了,不是mysql:mysql这属性了,想起上次测试把var目录删除重建过,导致属性没有加上。于是改回这个属性,再重启正常!

[root@web130 var]# cd ..
[root@web130 mysql]# ll
total 80
drwxr-xr-x.  2 root mysql  4096 Nov  6  2017 bin
-rw-r--r--.  1 root mysql 17987 Apr 27  2017 COPYING
drwxr-xr-x.  3 root mysql  4096 Jan 14 02:34 data
drwxr-xr-x.  2 root mysql  4096 Nov  6  2017 docs
drwxr-xr-x.  3 root mysql  4096 Nov  6  2017 include
-rw-r--r--.  1 root mysql   301 Apr 27  2017 INSTALL-BINARY
drwxr-xr-x.  3 root mysql  4096 Nov  6  2017 lib
drwxr-xr-x.  4 root mysql  4096 Nov  6  2017 man
drwxr-xr-x. 10 root mysql  4096 Nov  6  2017 mysql-test
-rw-r--r--.  1 root mysql  2496 Apr 27  2017 README
drwxr-xr-x.  2 root mysql  4096 Nov  6  2017 scripts
drwxr-xr-x. 27 root mysql  4096 Nov  6  2017 share
drwxr-xr-x.  4 root mysql  4096 Nov  6  2017 sql-bench
drwxr-xr-x.  2 root mysql  4096 Nov  6  2017 support-files
drwxr-xr-x   7 root root   4096 Jan 24 22:18 var
drwxr-xr-x   7 root root   4096 Jan 14 01:36 varbak

可以看到上面var文件夹属性变成了root:root,都是删除再新建忘记加属性的错!重新加属性就好了

[root@web130 mysql]# chown -R mysql:mysql var
[root@web130 mysql]# ll
total 80
drwxr-xr-x.  2 root  mysql  4096 Nov  6  2017 bin
-rw-r--r--.  1 root  mysql 17987 Apr 27  2017 COPYING
drwxr-xr-x.  3 root  mysql  4096 Jan 14 02:34 data
drwxr-xr-x.  2 root  mysql  4096 Nov  6  2017 docs
drwxr-xr-x.  3 root  mysql  4096 Nov  6  2017 include
-rw-r--r--.  1 root  mysql   301 Apr 27  2017 INSTALL-BINARY
drwxr-xr-x.  3 root  mysql  4096 Nov  6  2017 lib
drwxr-xr-x.  4 root  mysql  4096 Nov  6  2017 man
drwxr-xr-x. 10 root  mysql  4096 Nov  6  2017 mysql-test
-rw-r--r--.  1 root  mysql  2496 Apr 27  2017 README
drwxr-xr-x.  2 root  mysql  4096 Nov  6  2017 scripts
drwxr-xr-x. 27 root  mysql  4096 Nov  6  2017 share
drwxr-xr-x.  4 root  mysql  4096 Nov  6  2017 sql-bench
drwxr-xr-x.  2 root  mysql  4096 Nov  6  2017 support-files
drwxr-xr-x   7 mysql mysql  4096 Jan 24 22:18 var


[root@web130 mysql]# service mysql start
Starting MySQL...                                          [  OK  ]

搜索发现以前的版本Errcode: 13 会提示是权限问题,不知道这个会不会有其他错误提示。

 

这个错误通常是由于权限问题或配置错误导致的。以下是一些解决方法: 1. 检查文件和目录权限:确保 MySQL 用户对 PID 文件所在的目录具有适当的权限。你可以使用以下命令更改权限: ``` sudo chown -R mysql:mysql /var/run/mysqld sudo chmod -R 755 /var/run/mysqld ``` 注意将 `/var/run/mysqld` 替换为你实际的目录路径。 2. 检查配置文件:查看 MySQL 的配置文件(通常是 my.cnf 或 my.ini),确保 pid-file 参数正确设置为 PID 文件的路径。 ``` pid-file = /var/run/mysqld/mysqld.pid ``` 同样,确保配置文件中的其他参数设置正确。 3. 检查数据目录:确保 MySQL 的数据目录存在并且具有适当的权限。如果数据目录不存在,可以尝试创建它并设置正确的权限: ``` sudo mkdir -p /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql sudo chmod -R 755 /var/lib/mysql ``` 4. 检查日志文件:查看 MySQL错误日志文件(通常是 `/var/log/mysql/error.log`),以获取更多详细信息。日志文件中可能会有关于启动失败的错误消息,帮助你定位问题。 5. 清理残留进程:如果之前的 MySQL 进程没有正确关闭,可能会导致残留的进程或锁文件。尝试使用以下命令杀死残留进程,并删除任何锁文件: ``` sudo pkill -9 mysql sudo rm /var/lock/subsys/mysql ``` 注意:这会强制终止 MySQL 进程,请确保已备份重要的数据。 如果你尝试了以上方法仍然无法解决问题,建议提供更多详细的错误日志和配置文件内容,以便我能够更好地帮助你解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值