导入mysql备份文件出现“ Invalid default value for ‘create_date’”的解决方法

/ 0评 / 0

问题

  alp在收购其他三大金刚,完成金刚合体后,忽然秀了一波断网闹剧,疑似跑路。各种传言不断,总之,VPS是连不上了。

  幸好做了自动备份到七牛云上,下载好备份数据后准备恢复。

  文件恢复很简单,解压。。OK!

  接下就是简单的sql恢复,source **.sql,出现错误了:ERROR 1067 (42000): Invalid default value for 'create_date'。不能为 timestamp字段设置指定的默认值'0000-00-00 00:00:00'。

解决方法

  查询资料发现,从5.6.17这个版本就默认设置了不允许插入 0 日期了,术语是 NO_ZERO_IN_DATE NO_ZERO_DATE。必须要插入0日期的话,需要删除去掉 sql_mode 中的 values: NO_ZERO_IN_DATE,NO_ZERO_DATE 。

  查看当前sql_mode

  编辑mysql配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,找到 sql_mode,删除“NO_ZERO_IN_DATE,NO_ZERO_DATE”。

  重启mysql服务即可。

  重新导入sql文件,成功!