记录一些常用的函数和瞎折腾的过程……

解决mysql报错:#1067 – Invalid default value for comment_date

提醒:本文最后更新于 1931 天前,文中所描述的信息可能已发生改变,请谨慎使用。

wordpress评论删除了很多,导致评论id断层太大,想想弄连续下,使用如下命令修改自增id重新计数:

alter table wp_comments auto_increment = 1;

结果报错了,提示:

#1067 – Invalid default value for comment_date

我记得以前使用这个命令是没有问题的,网上找了一翻,发现是mysql的问题了,以前我使用的mysql5.6,前不久刚升级到5.7,使用网上的方法竟然可行。

直接按网上教程修改mysql的配置文件my.cnf,编辑my.cnf

vim /etc/my.cnf

在[mysqld]下面添加如下内容:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

保存后,重启mysql,再执行修改自增id的命令,一切正常了。

网上说的还有一个临时方法:

mysql> set session
-> sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

这个问题的原因是comment_date的默认值为0000-00-00 00:00:00,查看sql_mode,其中有“NO_ZERO_IN_DATE,NO_ZERO_DATE”,这两个参数限制时间不能为0,所以会报错了!