【问题标题】:MySQL won't start after changin my.cf更改 my.cf 后 MySQL 不会启动
【发布时间】:2020-04-05 22:49:17
【问题描述】:

我在一个网站上工作,我收到了这个 MySQL 错误:

"(...) 这与 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.

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

谁能帮帮我?

【问题讨论】:

    标签: mysql ubuntu sql-mode


    【解决方案1】:

    我没有更改文件 /etc/mysql/my.cnf,而是应用了 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中的更改,并且它终于奏效了。

    【讨论】:

      【解决方案2】:

      去掉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";
      

      【讨论】:

      • 我已经在这样做了,但是每次启动我的电脑时我都必须这样做。我正在寻找一个明确的解决方案。
      【解决方案3】:

      如果您直接编辑 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-09
        • 2016-12-06
        • 1970-01-01
        • 1970-01-01
        • 2017-07-01
        • 2016-11-01
        相关资源
        最近更新 更多