导入数据库文件报1067错误
临时修改
该错误是由于时间的默认值不兼容,查看sql_mode
1 | show variables like 'sql_mode'; |
如果结果中含有NO_ZERO_IN_DATE, NO_ZERO_DATE
1 | set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZE |
或者
1 | set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; |
当然,这个只是临时修改,很可能每导入一次需要重复一次上面的步骤,而且即使执行了上面的步骤,执行完成或者导入完毕后还是会出现1055之类的错误,但是可以不用管,基本是导入成功了的
永久修改
编辑mysql的配配置文件 my.cnf
在[mysqld]下面添加如下列:
1 | sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
转储sql文件修改
提取出sql文件,通过在sql文件中将“0000-00-00”修改为有效时间如“1970-12-31”,然后运行sql文件实现导入