MySQL 更改后不会启动 my.cf

MySQL won't start after changin my.cf

我在网站上工作时遇到此 MySQL 错误:

"(...) this is incompatible with sql_mode=only_full_group_by (...)"

我一直在寻找答案,但我意识到我必须更改 MySQL 的 sql_mode。所以我将以下行添加到 /etc/mysql/my.cnf:

sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

但是现在当我执行 sudo service mysql restart 时需要很长时间然后显示此消息:

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

所以现在我删除了那行,每次启动 PC 时我都必须手动执行命令。

谁能帮帮我?

删除 my.cnf 中的 sql 模式并重新启动 mysql 服务,然后执行以下查询。

SET GLOBAL sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

我没有更改文件 /etc/mysql/my.cnf,而是在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中应用了更改,结果终于成功了。

如果您直接编辑 my.cf,则需要删除引号。

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

此处引用并为我工作:https://gist.github.com/cucxabeng/938b55b3e8b8f1bf230edbf043254189