首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql_mode没有更新,即使我在my.cnf中更改了它

问sql_mode没有更新,即使我在my.cnf中更改了它
EN

Stack Overflow用户
提问于 2017-10-02 06:56:00
回答 1查看 1.4K关注 0票数 0

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

在my.cnf,我有:

代码语言:javascript
复制
sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,TRADITIONAL,ALLOW_INVALID_DATES

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

代码语言:javascript
复制
SHOW VARIABLES LIKE 'sql_mode' 

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

代码语言:javascript
复制
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

我做错了什么?快把我逼疯了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-02 07:21:14

根据手册的说法,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_USER和NO_ENGINE_SUBSTITUTION。 从MySQL 5.7.4到5.7.7,TRADITIONAL相当于STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_AUTO_CREATE_USER和NO_ENGINE_SUBSTITUTION。NO_ZERO_IN_DATE, NO_ZERO_DATE和ERROR_FOR_DIVISION_BY_ZERO模式没有命名,因为在这些版本中,它们的效果包含在严格SQL模式(STRICT_ALL_TABLES或STRICT_TRANS_TABLES)的效果中。因此,TRADITIONAL在所有MySQL 5.7版本中的效果都是相同的(与MySQL 5.6中的效果相同)。有关更多讨论,请参见MySQL 5.7中的SQL更改。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46520733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档