如何在MySQL 5.7中禁用严格的SQL模式

时间:2019-05-19 01:25:54  来源:igfitidea点击:

如何在MySQL 5.7中禁用严格的SQL模式?
如何禁用MySQL严格模式?
如何设置sql_mode选项全局禁用我的MySQL服务器的严格模式?

Strict模式控制MySQL如何处理INSERT或UPDATE等数据更改语句中的无效或缺失值。
这可能是由于任何原因,比如如果严格模式是启用的,除以0会产生错误。
日期不允许为“0000-00-00”,因此会产生错误。
本教程将禁用MySQL server 5.7或更高版本中的严格SQL模式。

禁用严格SQL模式

我们可以在服务器上编辑 mysqld.cnf
但是对于本教程,我将创建一个单独的配置文件来禁用MySQL服务器中的严格SQL模式。

sudo vim /etc/mysql/conf.d/disable_mysql_strict_mode.cnf

添加以下内容并保存文件。

[mysqld] 
sql_mode="IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

现在重新启动MySQL服务使更改生效。

sudo systemctl restart mysql.service

验证SQL模式

登录到MySQL控制台并执行下面的查询来查找sql_mode变量的值。

mysql> SELECT @@sql_mode;

确保结果中没有 ONLY_FULL_GROUP_BYSTRICT_TRANS_TABLES