关于mysql严格模式的开启、关闭
由于项目中对一些默认值设置问题,以及种种原因,mysql数据库需要使用非严格模式开发(mysql最近的版本默认是开启严格模式的)。
linux下mysql服务下操作步骤是:
1、进入mysql服务
2、执行set操作修改,我们项目是直接设置为''
mysql> set global sql_mode=''; #这种方法修改,当前会话失效后,这个修改就没意义了,建议修改配置文件的方式修改
3、修改后,不需要重启mysql服务,立即生效
4、检查是否生效,执行sql
select @@sql_mode;
通过配置文件修改:
linux找my.cnf文件
window的修改办法是找my.ini
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
严格模式主要用以下场景
不支持对not null字段插入null值
不支持对自增长字段插入”值
不支持text字段有默认值
如何开启MYSQL的严格模式
1.可以通过执行SQL语句来开启,但是只对当前连接有效,下面是SQL语句:
set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
2.通过修改MySQL的配置文件,在配置文件中查找sql-mode,将此行修改成为:
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
如果查找不到sql-mode=则在[mysqld]下加入即可,推荐第二种方法,可以一劳永逸。