Systemctl挂起试图在Fedora上启动MySQL

当我尝试通过systemctl start mysqld.service启动Fedora上的Mysql时,它将无限期地挂起,永远不会启动。 运行mysqld_safe --skip-grant-tables &或者mysqld_safe --nowatch --basedir=/usr启动服务器就好了,表示数据库还在,但是使用service或者systemctl根本不起作用。 在/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?

mysqld和mysqld_safe是configuration文件的不同“解释”的不同的二进制文件。 检查此链接了解更多信息。 最常见的情况是,my.cnf值之一不合适,导致mysqld.service无法启动,但此configuration值被mysqld_safe忽略。

你也可以尝试运行:

 mysqld --help --verbose 

来诊断可能不会logging到常规日志中的启动问题。

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

所以你可以有

[MySQL的]
端口= 3309

的[mysqld]
端口= 3309

[中mysqladmin]
[端口= 3309]

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

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

我不知道最初的原因或底层问题是什么,但重新安装mysql包,然后重新启动修复它。

 yum reinstall mysql mysql-server reboot