mysql已死,但是已锁定

时间:2013-10-14 10:26:58

标签: php linux rhel mysql

我在 Linux上使用PHP-mysql(RHEL 5.0)第一次
当我尝试使用mysqli_connect从我的PHP脚本连接MySQL时。
显示以下错误:

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'(2)

在谷歌上搜索了一小时后,我发现了解决方案here

当我按照这种方法发出命令时:

service mysqld status

作为root用户 我得到了:mysql is dead but subsys locked任何人都知道如何解决这个并导致这个错误?

另外

  • 重新启动
  • 启动
  • 并停止MySQL
将输出提供为: FAILED
但PHP工作正常。我已经为演示测试了phpinfo(); 我在/usr/local/mysql/bin安装了MySQL。任何人都可以帮助我吗?任何帮助表示赞赏。


提前谢谢。

9 个答案:

答案 0 :(得分:60)

我尝试更新大包后,我的OTRS服务器出现了这个问题。

解决方案是:

复制安全:

cp /var/lock/subsys/mysqld /root/mysqld

而不是删除它

rm /var/lock/subsys/mysqld

关闭所有依赖于mysql的服务:

service httpd stop
service otrs stop

之后:

service mysqld restart
service httpd restart
service otrs restart

系统是CentOS 6.x

答案 1 :(得分:4)

  1. tail /var/log/mysqld.log以检查错误日志
  2. 然后执行以下操作:

    rm /var/lock/subsys/mysqld chown -R mysql.mysql /var/run/mysqld

答案 2 :(得分:4)

service mysqld restart

只需重新启动mysqld就可以在Centos上工作了。

答案 3 :(得分:3)

首先,确保/etc/init.d/mysqld从/ usr / local / mysql / bin运行 然后,杀死mysqld,删除锁定文件并重新启动它。

答案 4 :(得分:1)

如果你有一个完整的磁盘,也会发生这种(以及各种其他奇怪的错误)。就我而言,我的/ var分区已经填满了。释放空间允许mysqld再次重启。

答案 5 :(得分:1)

首先找到mysqld的PID号码:

 1.使用顶部| grep mysqld
 2. kill -9 PID

安全方法,适用于Cent OS

答案 6 :(得分:0)

重新启动服务器对我有用。请记住在重新启动后启动所有服务,以防你没有为它们添加'chkconfig',比如httpd,named和mysql。

答案 7 :(得分:0)

我使用命令kill,一步一步:

  1. 使用命令服务mysqld status查找PID mysqld
  2. kill -9 PID
  3. 再次使用命令服务mysqld status查找PID mysqld
  4. kill -15 PID
  5. 再次使用命令服务mysqld状态检查,检查直到PID死或锁定已锁定
  6. 使用命令服务mysqld start

答案 8 :(得分:0)

我在项目中遇到的问题是由于磁盘空间不足。

正在运行MySQL的服务器用尽了磁盘空间,业务项目的日志太大。结果是MySQL重新启动失败。

这是一种可能性,您可以尝试一下。

du -sh *

服务mysqld重新启动