原因:
这种报错可能是你 mysql 升级到 5.7++ 而引起的默认值不兼容的问题。
看看你的字段名是什么,我的是时间字段,类型是 datetime。
想到可能是类型的默认值被限制了,查看 sql_mode。果然:NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数限制时间不能为0,因此需要把这两个删掉
将 sql_mode 的内容拷贝出来,删掉 NO_ZERO_IN_DATE,NO_ZERO_DATE,然后在重新设置 sql_mode
set session sql_mode=‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’
此方法只是临时有效,想要长期有效的话,则配置 my.cnf 文件
我的 my.cnf 是在 /usr/local/docker/mysql/conf.d/docker.cnf
添加如下:
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
重启 mysql 服务即可生效