如果无法启动或停止 MySQL,该怎么办
你好。我叫 Goto,来自网络系统部门。
之前写过一篇关于套接字错误的文章
我写到socket文件不存在时的解决方案之一是
然而,也有这样的情况。
- MySQL 管理器或服务器 PID 文件无法找到
且无法停止的情况。 - MySQL没有运行,但是锁存在
并且无法启动。
可能有这样的事情。
这次,我把这些错误的原因以及处理方法写下来。
1.如果你无法阻止
MySQL管理器或服务器PID文件无法找到!
这是因为PID文件不存在或找不到。
*PID文件是写入PID的文件。
在Linux中,内核使用进程标识符来管理进程。这就是 PID(进程 ID)。
对于系统直接启动的进程,比如mysqld,会生成一个pid文件,这样内核就不会忘记它。
如果你查看 /var/run/ 下,你会看到各种 pid 文件。
解决方法是创建一个 PID 文件。
检查要从 my.cnf 创建的位置。
/etc/my.cnf
pid 文件 = /var/run/mysqld/mysqld.pid
它设置为安装在/var/run/mysqld/mysqld.pid中,因此在那里创建一个PID文件。
# 触摸 /var/run/mysqld/mysql.pid # chown mysql:mysql /var/run/mysqld/mysqld.pid
PID 文件的内容必须包含 PID。
ps aux | grep mysqld
让我们检查 mysqld 的 PID(不是 mysqld_safe)。
本例中2846是mysqld的PID,因此将2846写入创建的mysqld.pid中。
回声 2846 > /var/run/mysqld/mysql.pid
这应该阻止它!
2. 如果无法启动
MySQL未运行,但锁存在
原因是锁文件仍然存在。
*锁定文件是在进程成功启动时创建并在进程成功停止时删除的文件,
以防止同一进程被创建两次。
解决办法是删除lock文件。
# rm /var/lock/subsys/mysql
您现在应该可以启动了!
*注意:在以下情况下似乎会出现相同的错误。
- /etc/my.cnf 指定将日志输出到不存在的目录。
- 输出目标目录没有权限
以上是当MySQL无法启动或停止时的处理方法。
如果您觉得这篇文章有帮助,请点赞!