MySQL模式“sql_mode查看、修改/设置”教程

MySQL服务器可以在不同的SQL模式下运行,并且可以根据sql_mode系统变量的值将这些模式不同地应用于不同的客户端。DBA可以设置全局SQL模式以匹配站点服务器操作要求,并且每个应用程序都可以将其会话SQL模式设置为自己的要求。

 

模式会影响MySQL支持的SQL语法以及它执行的数据验证检查。这使得在不同环境中使用MySQL以及将MySQL与其他数据库服务器一起使用更加容易。

 

下面是 MySQL5.7.26版本 为例子!

注意:以下查看sql_mode都是最初MySQL5.7默认的SQL模式。

 

一、全局sql_mode

 

1、查看全局sql_mode:

mysql> select @@global.sql_mode;

select @@global.sql_mode

可以看到,O_ZERO_DATE、NO_ZERO_IN_DATE,我现在想把这两个设置去掉。

只需要按照下面来修改即可!

 

2、修改全局sql_mode:

set @@global.sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

 

二、当前sql_mode

 

1、查看当前sql_mode:

mysql> select @@sql_mode;

select @@sql_mode;

可以看到,O_ZERO_DATE、NO_ZERO_IN_DATE,我现在想把这两个设置去掉。

只需要按照下面来修改即可!

 

3、修改当前sql_mode:

set @@sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

 

思考:上面的方法虽然也可以更改SQL模式的问题,但是,一旦MySQL重启,就必须重新设置一次全局和当前的sql_mode,这样非常的麻烦,还有其它一劳永逸的方法吗?

 

答案:mysql.ini 中修改sql_mode配置。

 

Mysql配置文件 mysql.ini 修改sql_mode

在MySQL配置文件mysql.ini中修改sql_mode配置,就不需要每次重启MySQL就得重新设置sql_mode了。

 

要求:

我现在想把“O_ZERO_DATE、NO_ZERO_IN_DATE”这两个设置去掉。

 

1、在 my.ini 的 [mysqld] 下添加:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

2、重启MySQL。

 

如果有想了解更多关于MySQL5.7版本数据库SQL模式的,请查看:

https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

 

此链接官方文档讲解了如下知识:

设置SQL模式

最重要的SQL模式

SQL模式的完整列表

组合SQL模式

严格的SQL模式

IGNORE关键字和严格SQL模式的比较

MySQL 5.7中的SQL模式更改

    A+
发布日期:2020年09月15日 15:27:49  所属分类:Mysql
最后更新时间:2020-09-15 15:27:49
评分: (4 票;平均数4.00 ;最高评分 5 ;用户总数4;总得分 16;百分比80.00)
付杰
wordpress站群服务 泛解析二级域名 二级目录
wordpress站群服务 泛解析二级域名 二级目录
  • ¥ 1999.9元
  • 市场价:8999元
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
  • ¥ 6.8元
  • 市场价:8.8元
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
  • ¥ 1.0元
  • 市场价:9.9元
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 49.9元
  • 市场价:99.9元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: