MYSQL从旧版升级到mysql5.7以上、或直接安装高版本mysql导入数据时,容易遇到空值,默认值无效等错误,
导致导入数据表失败。如:
提示 [ERR] 1067 - Invalid default value for 'create_time'
解决办法:
在myslq命令行或者客户端管理软件里执行以下命令:select @@global.sql_mode;
会显示当前的模式显示为(个别MySQL版本会有少许出入,不过并不妨碍):ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
最好保留这个查询结果。
修改模式为:set @@global.sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
然后重新导入数据:
重新导入成功之后,再还原配置:set @@global.sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';