繁体   English   中英

sql_mode无法更新,即使我在my.cnf中进行了更改

[英]sql_mode not updating, even though I've changed it in my.cnf

我正在尝试调整从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

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

根据手册TRADITIONAL包括其他几种模式:

传统的

在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_SUBSTITUTION 未命名NO_ZERO_IN_DATE, NO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERO模式,因为在这些版本中,它们的效果包括在严格的SQL模式的效果( STRICT_ALL_TABLESSTRICT_TRANS_TABLES )中。 因此,在所有MySQL 5.7版本中, TRADITIONAL的效果都相同(与MySQL 5.6中的效果相同)。 有关其他讨论,请参见MySQL 5.7中的SQL模式更改。

因此,期望该模式的扩展,并且您的两种模式对于MySQL 5.7.8+是等效的。 实际上,对sql模式设置进行了评估:例如,您可以看到最终模式包括配置文件中定义的非默认ALLOW_INVALID_DATES

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM