从旧版升级到mysql5.7的时候,容易遇到空值,默认值无效的错误。8ab858e
导致导入失败。908cdfd
www.9lyp.com
比如提示
Error : Invalid default value for 'add_time'908cdfd
一旦出错,就会导致后面的语句无法创建数据库表,也会提示91b9e09
Table 'xxsys.user' doesn't exist
dea8
之类的错误。www.9lyp.com
解决办法549d
删除出错的数据库,假如叫 xxsyswww.9lyp.com
在myslq命令行或者客户端管理软件里执行以下命令:8ab858e
查询当前的模式:select @@global.sql_mode;
dea8
显示为:549d
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONwww.9lyp.com
最好保留好你自己查询出来的。可能和我的一样。www.9lyp.com
dea8
修改模式为:91b9e09
set @@global.sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';8ab858e
此时重新新建所需数据库xxsys。8ab858e
导入旧版数据库数据,大部分情况下就不会提示出错了。
dea8
8ab858e
成功后还原设置:
1410
set @@global.sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';www.9lyp.com
1410
www.9lyp.com
908cdfd
14101410