【问题标题】:mysql is dead but subsys lockedmysql 已死,但 subsys 已锁定
【发布时间】:2013-10-14 10:26:57
【问题描述】:

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

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

谷歌搜索了一个小时后,我找到了解决方案,如 here 所述。

当我遵循这种方法并发出命令时:

service mysqld status

作为根用户 我得到了:mysql is dead but subsys locked 任何人都知道如何解决这个问题以及这个错误的原因吗?

还有

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


提前致谢。

【问题讨论】:

  • 重启整个服务器
  • @Hanky웃Panky 在发布问题之前尝试过。但是没用。
  • 您是否真的查看了 mysql 日志文件以了解错误可能是什么,而不仅仅是疯狂地从空气中提取东西?
  • @VedantTerkar 有什么永久解决方案吗?我每隔几个小时就会收到一次

标签: php linux rhel mysql


【解决方案1】:

在我尝试将一个大包更新后,我的 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并接受这一点。干杯:)!
  • 谢谢,伙计。这做到了。由于我的不是 CentOS,我只是不需要处理“otrs”。干杯。
  • +1。我刚刚在亚马逊实例上遇到了这个问题,这解决了它。两个简短的说明:/var/lock/subsys/mysqld 文件为空(0 字节);机器上没有安装服务 otrs。
  • 非常感谢!但是,我现在正在寻找根本原因,因为它每 24 小时重复一次 :(
  • @JovanPerovic 有什么永久的解决方案吗?我每隔几个小时就会收到此错误。每次登录并修复此问题并不容易
【解决方案2】:
service mysqld restart

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

【讨论】:

    【解决方案3】:

    先找到mysqld的PID号:

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

    安全的方法,适用于 Cent OS

    【讨论】:

      【解决方案4】:

      如果您的磁盘已满,也会发生这种情况(以及各种其他奇怪的错误)。就我而言,我的 /var 分区已满。释放空间允许 mysqld 再次重新启动。

      【讨论】:

        【解决方案5】:
        1. tail /var/log/mysqld.log 查看错误日志
        2. 然后执行以下操作:

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

        【讨论】:

        • 感谢您花时间解决这个问题。 +1。
        【解决方案6】:

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

        【讨论】:

        • 感谢您的回复。你能详细说明如何做到这一点吗?特别是第一部分:make sure that /etc/init.d/mysqld is running from /usr/local/mysql/bin。因为我对linux很陌生。我是 Windows 用户。
        • 感谢您花时间解决这个问题。 +1。
        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          1. 使用命令 service mysqld status 查找 PID mysqld
          2. 杀死 -9 PID
          3. 再次使用命令 service mysqld status 查找 PID mysqld
          4. 杀死 -15 PID
          5. 使用命令 service mysqld status 再次检查,直到 PID dead OR subsys locked
          6. 使用命令 service mysqld start

          【讨论】:

            【解决方案9】:

            我在项目中遇到的问题是因为磁盘空间用完了。

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

            这是一个概率,你可以试一试。

            du -sh *

            服务 mysqld 重启

            【讨论】:

              猜你喜欢
              • 2016-09-06
              • 2012-04-12
              • 2014-04-08
              • 2017-04-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多