mysqld dead but subsys locked 的解决办法

来源:互联网 发布:力控网络节点怎么设置 编辑:程序博客网 时间:2024/05/16 16:12

      项目使用的mysql数据突然宕掉了,使用ps  -ef|grep mysql ,没有发现mysql的进程,只有一些使用了mysql的项目的进程。

     数据库脚本目录:/usr/bin/mysql

     mysqld目录:/etc/init.d/mysqld

     

     1、检查mysql服务状态:

      [root@ bin]# /usr/bin/mysql status
      ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

     

      [root@ init.d]# /etc/init.d/mysqld status
     mysqld dead but subsys locked


     对于“mysqld dead but subsys locked” 网上找的资料都是说安装完数据库后没初始化数据造成无法启动的,这里不适用。没办法只有自己摸索了。


     2、检查mysql 的pid文件 和socket文件,发现对应目录下没有 这2文件(目录可以通过查看my.cnf配置找到)

          这里数据库pid和socket文件目录为:

          pid-file:/var/run/mysqld/mysqld.pid

          socket:/var/lib/mysql/mysql.sock

     之前遇到过mysql无法启动,删除pid和socket文件 后就能启动了。

    启动数据库:/etc/init.d/mysqld start 提示启动失败

    查看日志 cat   /var/log/mysqld.log,发现如下日志:

    130708 12:36:04 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
    130708 12:36:04 [ERROR] Do you already have another mysqld server running on port: 3306 ?
    130708 12:36:04 [ERROR] Aborting

  日志上提示端口被占用了


  3、检查3360端口占用情况:

  [root@ init.d]# netstat -apn|grep 3360

  没有占用3360端口的进程

  [root@ init.d]# lsof -i:3360

  也没有占用3360端口的进程


  4、关闭所有使用了该mysql的项目,然后执行:killall  mysql

  5、启动数据库:/etc/init.d/mysqld start   

  竟然启动成功了!

   

     

   

原创粉丝点击