mysql5.6.20数据库sqlmode状态的配置
发布时间:2023-04-29 13:29:10 所属栏目:MySql教程 来源:
导读:开发需求要求通过PHP后台程序导入数据到mysql的某个库的表中,但是报错:Incorrect integer value: '' for column 'id' at row 1。同时自己在MysqL5.6的数据库的这个表中insert into 一条数据,inser
开发需求要求通过PHP后台程序导入数据到mysql的某个库的表中,但是报错:Incorrect integer value: '' for column 'id' at row 1。同时自己在MysqL5.6的数据库的这个表中insert into 一条数据,insert into log values('','admin','31','002t'),还是报错出现上面同样的错误。 解决办法: 后来查了下MysqL的资料。发现5以上的版本如果是空值应该要写NULL 这种问题一般MysqL 5.x上出现。我用的MysqL5.1 官方解释说:得知新版本MysqL对空值插入有"bug",要在安装MysqL的时候去除默认勾选的enable strict sql mode 同时我线上的MysqL数据库的版本为MysqL5.6.20. 于是找到一文档: MysqL5.6 sql_mode设置 参考资料: 由于数据人员的需求,现在需要修改MysqL的sql_mode sql_mode默认是sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这时候我在/etc/my.cnf配置如下 sql_mode=NO_ENGINE_SUBSTITUTION 重启后还是 MysqL> SELECT @@GLOBAL.sql_mode; | @@GLOBAL.sql_mode | | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | 1 row in set (0.00 sec) 这是因为我编译安装的目录下面有一个文件叫my.cnf,然而这个文件里有sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这一项 把这个my.cnf mv my.cnf my.cnf.ori grep sql_mode /usr/local/MysqL/my.cnf.ori sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 同时在/etc/my.cnf 文件中设置: sql_mode= NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION grep "sql_mode" /etc/my.cnf sql_mode=NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION 再重启MysqL MysqL> SELECT @@GLOBAL.sql_mode; | @@GLOBAL.sql_mode | | NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | 此时开发再次导入数据到后台,不再报错。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐