无法重新启动 Mysqld

无法重新启动 Mysqld

我无法重新启动 mysql 服务

[root ~]# service mysqld restart
Stopping MySQL:                                            [FAILED]
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL:                                            [FAILED]

来自mysqld.log

131004 10:34:49  mysqld started
131004 10:34:52  InnoDB: Started; log sequence number 0 43655
131004 10:34:52 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
131004 10:34:52 [ERROR] Do you already have another mysqld server running on port: 3306 ?
131004 10:34:52 [ERROR] Aborting

131004 10:34:52  InnoDB: Starting shutdown...
131004 10:34:54  InnoDB: Shutdown completed; log sequence number 0 43655
131004 10:34:54 [Note] /usr/libexec/mysqld: Shutdown complete

131004 10:34:54  mysqld ended

流程

# ps -Af | grep mysql
root     24965     1  0 08:39 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
mysql    25018 24965 43 08:39 ?        00:57:11 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --open-files-limit=65535 --socket=/var/lib/mysql/mysql.sock
root     27960 27143  0 10:50 pts/0    00:00:00 grep mysql

看起来好像有两个 mysqld 在运行,其中一个是僵尸进程。我该如何修复这个问题?

答案1

尝试

ps -Af

找到正在运行的其他 mysqld 然后将其终止。

答案2

尝试sudo netstat -lntup查找端口 3306,如果 MySQL 仍在监听,则意味着它没有被杀死,使用其他评论中建议的 kill 命令并检查 init 脚本以查看为什么它没有停止 MySQL。

答案3

一般来说,当你无法停止 mysql 时,这是因为无法通过 mysqladmin 关闭它。运行以下命令查看它是否关闭

 mysqladmin shutdown

如果这不起作用,那么您需要在 init 脚本或 /root/.my.cnf 文件或另一个 my.cnf 文件中为其设置密码。

答案4

重新启动您的虚拟机或服务器,僵尸 mysql 将不会启动。

相关内容