解决mysql报错:#1067 – Invalid default value for comment_date
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,所以会报错了!