将服务器的数据同步到本地或备份还原到本地mysql时,出现莫名其妙的报错,可能有以下这些报错:
“Data truncated for column ‘字段名‘ at row 1”,集中在时间的默认值。数据源的mysql版本是5.5.30,有些时间字段默认值设置为0000-00-00 00:00:00。目标mysql版本为5.7.17,查资料发现,MySQL 5.7 以上版本默认禁止 0000-00-00 的日期。
在 MySQL 的配置文件 [mysqld] 区域添加如下设置,重启mysql后,不再报错。
解决:
1、修改sql_mode
set GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
2、或者修改配置文件,在[mysqld]下面新增一行:
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
注意:
1、修改配置文件,需要重启数据库服务。
2、修改sql_mode后只对新建数据库生效,原来存在的数据库需要在该数据库下手动运行第1步。
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6278