【问题标题】:Error while setting value ''STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'将值“STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”设置为“sql_mode”时出错
【发布时间】:2021-08-17 04:52:09
【问题描述】:

我从 Ubuntu 18 升级到 Ubuntu 20。升级期间 mySQL 升级失败。 升级后,我再次尝试安装mysql-server。我收到以下错误。

ERROR: Unable to start MySQL server:
2021-05-29T02:51:22.812281Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2021-05-29T02:51:22.812291Z 0 [ERROR] [MY-000077] [Server] /usr/sbin/mysqld: Error while setting value 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2021-05-29T02:51:22.813552Z 0 [ERROR] [MY-010119] [Server] Aborting

使用的命令:sudo apt install mysql-server

我在升级到 Ubuntu20 后使用了上面的命令。 我什至尝试编辑配置,但这没有帮助。下面是/etc/mysql/mysql.cnf的内容:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

我在这里发现了一个类似的问题:https://askubuntu.com/questions/1296168/mysql-fail-after-ubuntu-20-04-upgrade

【问题讨论】:

  • 你能不能试着写成mysql.cnf,而不是sqlmode=STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION。没有",根据valid values list here?
  • 也编辑我的问题。我做了,但没有用。以下是内容: !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ [mysqld] sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

标签: mysql ubuntu-20.04


【解决方案1】:

谢谢@FANO_FN。 这是/etc/mysql/mysql.conf.d/mysqld.cnf 中需要更正的行。 mysql8 不再具有 NO_AUTO_CREATE_USER sql_mode 的值。 所以,我从值列表中删除了它,它开始工作了。

最终值如下所示:

sql_mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

【讨论】:

  • 等一下,您是否尝试使用这些模式?因为评论它意味着它没有被使用..
  • 我只是想让它工作。我现在明白为什么它出错了。值“NO_AUTO_CREATE_USER”不再是 myql8 的一部分
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 2018-10-08
  • 2019-11-16
  • 2016-01-25
  • 2019-12-13
  • 2012-09-17
  • 2013-12-20
  • 2017-04-07
相关资源
最近更新 更多