我为多伦多、加拿大和世界各地的各种客户提供自由 IT 咨询服务。
一位客户最近遭遇了电源故障。现在,他们的一台 Slackware 12.0.0 机器(同时充当 DNS 服务器)出现了各种问题。
一个问题是他们无法登录phpMyAdmin。
我尝试停止并重新启动 MySQL。但即使 MySQL 停止了,锁定文件仍然存在。
jasonspiro@cybertron:~$ sudo /etc/init.d/mysql stop
Shutting down MySQL. SUCCESS!
jasonspiro@cybertron:~$ sudo /etc/init.d/mysql stop
ERROR! MySQL manager or server PID file could not be found!
jasonspiro@cybertron:~$ sudo /etc/init.d/mysql status
ERROR! MySQL is not running, but lock exists
jasonspiro@cybertron:~$ ls -l /var/lock/subsys/mysql
-rw-r--r-- 1 root root 0 2012-07-05 16:18 /var/lock/subsys/mysql
尽管 MySQL 没有运行,为什么 MySQL 的锁文件仍然挂起?
我可以简单地停止 MySQL、删除锁文件并重新启动 MySQL 吗?
我下一步还应该采取其他措施吗,或者什么都不要做?
编辑: 在我问了这个问题之后不久,我注意到这台机器上安装 MySQL 的方式似乎不太对劲。另外,我发现/etc/init.d/mysql
我在这台机器上找到的脚本在启动 MySQL 时总是创建一个锁定文件,而在停止 MySQL 时从不删除该文件。所以这个问题对我来说无关紧要。谢谢,但我不需要更多答案。
答案1
做:ls -al /var/lock/subsys
查找mysql.pid
。删除它。mysql.sock
如果存在也删除。
如果其他方法都失败了,请 [以 root 身份] 使用updatedb ; locate <filename>
。在这种情况下,这是您的好朋友。
尝试使用 init 脚本重新启动 MySQL。如果不起作用,请从可接受的数据库备份恢复到数据库检查点。
如果不存在数据库备份:尽快克隆此磁盘dd
。您可能需要使用一些硬核恢复程序。即使 MySQL 服务重新启动,也要保存已知最佳的备份一段时间,以防万一。