暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的SQL_Mode修改小计

逸鹏说道 2019-02-17
201

目录:

  • 问题复现

  • 临时解决

  • 重启失效验证

  • 配置文件

  • 知识点

问题复现

今天突然发现MySQL服务器的sql_mode是默认的模式,危害如下:

临时解决

set global sql_mode='strict_trans_tables'
(阿里服务器默认是:strict_trans_tables

重启失效验证

上面这种方式在MySQL重启后就会失效,想要永久生效还得联系运维工程师,eg:

配置文件

知识点

  • SQL Model
    :定义MySQL对约束的响应行为:

    • traditional
      :使用传统模型,不允许对非法值做插入操作

    • strict_trans_tables
      :对所有支持事物类型的表做严格约束

    • strict_all_tables
      :对所有表做严格约束

    • 查询当前设置:select @@sql_mode

    • eg:vi etc/my.cnf
      ,在[mysqld]
      下添加sql_mode='xx'
      ,然后重启数据库

    • mysql> set global sql_mode='xx_mode'

    • mysql> set @@global.sql_mode='xx_mode'

    • PS:MySQL重启后失效

    • mysql> set [session] sql_model='xx_mode'

    • mysql> set @@session.sql_mode='xx_mode'

    • PS:只在当前会话生效

    • 会话修改:

    • 全局修改:需要有权限,并且不会立即生效,对以后新建的会话生效(从全局继承的)

    • 配置修改:永远生效:

    • 常用mode:(阿里服务器默认是:strict_trans_tables

往期回顾:

日常小计~1月上旬

日常小计~1月下旬

码农眼中的数学之~数学基础

小白眼中的AI之~Numpy基础

码农眼中的数学之~矩阵专栏(附Numpy讲解)

一文搞定网络编程

一篇读懂ES6

一文入门NodeJS

网罗天下之~正则表达

聊聊数据库~开篇

聊聊数据库-概念

聊聊数据库~SQL环境篇(原文有更新)

https://www.cnblogs.com/dotnetcrazy/p/9887708.html

文章转载自逸鹏说道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论