今天Simon在导入Mysql数据的时候,导入失败,提示
SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'created_at' |
源数据机器MYSQL版本是5.7,目标机器MYSQL版本也是5.7,为什么导出的数据无法在另一台机器上导入?猜想是Mysql配置的问题,查证后确定是mysql配置项sql_mode中的NO_ZERO_IN_DATE和NO_ZERO_DATE导致的问题。
NO_ZERO_DATE:在非严格模式下,可以插入形如“0000-00-00 00:00:00”的非法日期,MySQL数据库仅抛出一个警告。而启用该选项后,MySQL数据库不允许插入零日期,插入零日期会抛出错误而非警告。
NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零。如“2011-00-01”和“2011-01-00”这样的格式是不允许的。采用日期或月份为零的格式时MySQL都会直接抛出错误而非警告。
解决办法:
打开mysql配置文件,修改其中的sql_mode选项值,去掉NO_ZERO_IN_DATE,NO_ZERO_DATE,重启mysql,问题解决。
如果配置文件中没有sql_mode选项,则需要进入mysql,输入
show variables like 'sql_mode' ; |
复制value,然后在mysql配置文件中手动加上 sql_mode="复制的value" ( 记得要去掉 NO_ZERO_IN_DATE,NO_ZERO_DATE )。
重启mysql
下一篇:
百度编辑器ueditor代码语言调整
友情提示:垃圾评论一律封号...