Systemctl 在 Fedora 上尝试启动 MySQL 时挂起

Systemctl 在 Fedora 上尝试启动 MySQL 时挂起

当我尝试通过 启动 Fedora 上的 Mysql 时systemctl start mysqld.service,它会无限期挂起并且永远不会启动。运行mysqld_safe --skip-grant-tables &mysqld_safe --nowatch --basedir=/usr可以正常启动服务器,表明数据库仍然存在,但使用servicesystemctl根本不起作用。 中没有显示任何内容/var/log/mysqld.log。但是,`/var/log/messages 显示数千条消息,例如:

Oct 29 15:55:52 myserver systemd[1]: mysqld.service holdoff time over, scheduling restart.
Oct 29 15:55:52 myserver systemd[1]: Job pending for unit, delaying automatic restart.

我如何诊断问题所在并让 MySQL 启动?

答案1

mysqld 和 mysqld_safe 是不同的二进制文件,对配置文件有不同的“解释”。检查此链接了解更多信息。最常见的情况是,my.cnf 中的一个值不正确,导致 mysqld.service 无法启动,但这个配置值被 mysqld_safe 忽略。

您还可以尝试运行:

mysqld --help --verbose

诊断可能未记录到常规日志中的启动问题。

答案2

在 my.cnf 中,你可以为每个“解释”指定命令

所以你可以

[mysql]
端口=3309

[mysqld]
端口=3309

[mysqladmin]
[端口=3309]

只要使用每个二进制文件的默认文件,这 3 个二进制文件中的任何一个都可以连接到 tcp/3309

这种不匹配的情况有时会发生,而且很烦人

答案3

我不确定最初的原因或根本问题是什么,但重新安装 mysql 包然后重新启动就可以解决问题。

yum reinstall mysql mysql-server
reboot

相关内容