I. Strict Mode阐述
根据 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制:
1).不支持对not null字段插入null值
2).不支持对自增长字段插入''值,可插入null值
3).不支持 text 字段有默认值
linux关闭mysql strict mode的方法非常简单,下面我来给大家总结了些常用的关闭mysql strict mode模式的例子,希望文章对各位同学会带来帮助。
首先用putty连接linux终端
vi /etc/my.conf
在编辑模式下,在里面加入一行代码:
sql-mode= NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
保存退出
输入service mysqld restart回车重启mysql
这样mysql strict mode模式就关闭了。
如果安装的PHP程序数据库结构关闭Strictmode
1).一个是安装mysql5.0(含以上)版本的时候去掉strictmode。
编辑 my.cnf,关闭Strict Mode:
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
2). 另一个就是修改查询语句。例如在
if ($this->dbcharset) {
@mysql_query("SET NAMES".$this->dbcharset);
}
后面执行
mysql_query("SET @@sql_mode = ''");
注意确定你使用的是MySQL5
mysqli方式类似,就是执行的是
mysqli_query($this->connection_id, "SET @@sql_mode =''");
顺便也列举一下比较常见的修改 my.ini 方式:
在 my.ini 中搜索:
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
将此行注释掉(在行首添加“#”号),然后在其后添加一行:
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
最后就像这样:
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"