最近把mysql升级到7.4了,数据库修改表引擎(MySQL如何将MyISAM转换成InnoDB引擎)报错#1067 - Invalid default value for ‘post_date‘。截图如下:
这种报错多是你mysql升级了版本而引起的默认值不兼容的问题。看看你的字段名是什么,我的是时间字段,类型是datetime。想到可能是类型的默认值被限制了,查看 sql_mode。果然:NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数限制时间不能为0
解决方法:
设置sql_mode
在/etc/my.cnf文件里的 [mysqld] 下面添加如下代码:
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
然后执行命令 service mysqld restart
重启数据库,一定记得重启才能生效。
然后重新编辑数据库,完美解决!!截图如下:
如果没有解决,或者设置sql_mode后报错,可以参考下面文章进行排查:
导入数据库时报错1067 – Invalid default value for ‘字段名’ 时区问题(当mysql5.7时新的报错解决方案)