MySQL优化表wp_posts的时候,出现报错:Error Invalid default value for 'post_date',经过网上查询找到解决方案。
问题原因:
在MySQL 5.7.5版本以后,对于日期类型的字段,需要给定一个默认值,否则就会报”Invalid default value for 'post_date'的错误。
解决方法:
第一种方法就是给日期类型的字段指定一个默认值。
第二种方法是修改MySQL配置文件,将sql_mode参数的值设置为空。(需要重启MySQL服务才能生效)
直接修改配置文件,linux找到 /etc/my.cnf 文件,有 sql_mode 设置就修改,没有就添加sql_mode:
#set sql_mode
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
然后重启mysql,执行mysql重启命令:service mysqld restart
注:
1、既然是那两个sql_mode参数导致的问题,那就将两个参数去掉就好了。
2、其中 NO_ZERO_IN_DATE,NO_ZERO_DATE 两个参数使得时间或日期参数 不得 使用0作默认值;
3、sql_mode 使得 sql 语句更严谨,但是又会带来老版本的不兼容问题,所以可以设置sql_mode的值使得新版本兼容老版本的。
4、上面参数只是例子,具体设置参数值按照项目要求。
参考文章:https://blog.csdn.net/weixin_42510217/article/details/126836194