mysql升级到5.7了,wordpress导数据报错 [Err] 1067 - Invalid default value for 'access_date'

最近把mysql升级到5.7了,wordpress导数据报错

[Err] 1067 - Invalid default value for 'access_date'

Invalid default value for 'comment_date'

原因出在类似这样的语句

-- ----------------------------
-- Table structure for cms_portal_site_access_pages
-- ----------------------------
DROP TABLE IF EXISTS `cms_portal_site_access_pages`;
CREATE TABLE `cms_portal_site_access_pages` (
  `access_pages_id` int(11) NOT NULL AUTO_INCREMENT,
  `access_page` varchar(255) NOT NULL COMMENT '访问页面',
  `session_id` varchar(32) NOT NULL,
  `access_date` date NOT NULL DEFAULT '0000-00-00' COMMENT '访问日期',
  `access_time` time NOT NULL COMMENT '访问时间',
  `visit_second` int(11) NOT NULL DEFAULT '0' COMMENT '停留时长(秒)',
  `page_index` int(11) NOT NULL DEFAULT '0' COMMENT '用户访问页面的索引',
  `site_id` int(11) NOT NULL DEFAULT '1',
  PRIMARY KEY (`access_pages_id`)
) ENGINE=InnoDB AUTO_INCREMENT=89 DEFAULT CHARSET=utf8 COMMENT='访问详细页面表';

mysql升级到5.7了,wordpress导数据报错 [Err] 1067 - Invalid default value for 'access_date'

这种报错多是你mysql升级到5.7而引起的默认值不兼容的问题。看看你的字段名是什么,我的是时间字段,类型是datetime。想到可能是类型的默认值被限制了,查看 sql_mode。果然:NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数限制时间不能为0

查看 sql_mode

mysql> show variables like 'sql_mode'; +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | Variable_name | Value | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | 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 | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>

 

临时修改:

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>

mysql升级到5.7了,wordpress导数据报错 [Err] 1067 - Invalid default value for 'access_date'

linux永久修改:

可以直接修改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升级到5.7了,wordpress导数据报错 [Err] 1067 - Invalid default value for 'access_date' ok问题解决,现在你导入或者创建表时看看!

 

--------------------------------------------------------------------------------------------------------------

windows永久修改:

修改方法同样,寻找的配置文件名和目录不同

如当前目录为mysql安装目录C:\Program Files\MySQL\MySQL Server 5.7

mysql升级到5.7了,wordpress导数据报错 [Err] 1067 - Invalid default value for 'access_date'

复制一份my-default.ini文件,命名为my.ini
修改最下面配置的为这个
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
保存后,重启mysql即可

--------------------------------------------------------------------------------------------------------------

转载https://www.cnblogs.com/wpjamer/p/7057577.html