【问题标题】:sql_mode not updating, even though I've changed it in my.cnfsql_mode 没有更新,即使我在 my.cnf 中更改了它
【发布时间】:2017-10-02 06:56:00
【问题描述】:

我正在尝试调整我们从 mySQL 5.5 服务器移动到 5.7 服务器的数据库。它抱怨日期是0000-00-00 格式。我正在尝试解决这个问题,但我无法克服这些错误。

my.cnf 中,我有:

sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,TRADITIONAL,ALLOW_INVALID_DATES

我重新启动 mySQL,然后在 phpmyadmin 中执行此操作:

SHOW VARIABLES LIKE 'sql_mode' 

但它显示了一个完全错误/不同的列表!

sql_mode
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

我做错了什么?这让我发疯了!

【问题讨论】:

  • my.cnf 可能有误?执行升级脚本?我更喜欢 MySQL Workbench 而不是 phpMyAdmin。 stackoverflow.com/questions/35565128/…
  • @BitAccesser 嗯,我很确定。我使用VestaCP作为控制系统,在在线工具中显示为/etc/mysql/my.cnf(我自己手动编辑,在线工具也显示我的更改。很奇怪:/
  • 你说的是phpMyAdmin!控制台上显示什么?
  • @BitAccesser 我所说的只是我使用 VestaCP 来管理服务器(有点像 CPanel),从那个面板我可以看到 my.cnf 的位置是/etc/mysql/my.cnf ,这是我正在编辑的。
  • 好的,以为是 MySQL 工具。文件系统中的 my.cnf 文件没有任何意义。重要的是使用的 my.cnf 文件。您应该在 phpMyAdmin 中找到该路径。

标签: mysql


【解决方案1】:

根据manualTRADITIONAL还包括其他几种模式:

传统

在 MySQL 5.7.4 之前,以及在 MySQL 5.7.8 及更高版本中,TRADITIONAL 等效于 STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USERNO_ENGINE_SUBSTITUTION

从 MySQL 5.7.4 到 5.7.7,TRADITIONAL 等效于 STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_AUTO_CREATE_USERNO_ENGINE_SUBSTITUTIONNO_ZERO_IN_DATE, NO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERO 模式未命名,因为在这些版本中,它们的效果包含在严格 SQL 模式(STRICT_ALL_TABLESSTRICT_TRANS_TABLES)的效果中。因此,TRADITIONAL 的效果在所有 MySQL 5.7 版本中都是相同的(与 MySQL 5.6 中相同)。有关其他讨论,请参阅 MySQL 5.7 中的 SQL 模式更改。

所以模式的扩展是预期的,你的两种模式对于 MySQL 5.7.8+ 是等效的。实际评估 sql 模式设置:您可以看到例如您的最终模式包括配置文件中定义的非默认 ALLOW_INVALID_DATES

【讨论】:

  • 啊,这很有趣!果然,删除TRADITIONAL,重新启动mysql,然后在phpmyadmin 中查看sql_mode 显示:`ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION`,现在它可以让我按预期更新数据库了! :) 谢谢!
  • 地球上的两个人更聪明了(总有一天我也要升级!):-)
猜你喜欢
  • 2023-01-12
  • 1970-01-01
  • 2018-02-25
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 2017-09-24
相关资源
最近更新 更多