mysql5.7 datetime 默认值0000-00-00 00:00:00出错
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,mysql5.7 datetime 默认值0000-00-00 00:00:00出错实验环境:MySQL 5.7.17使用wordpress的表wp_postsmysql > CREATE TABLE
千家信息网最后更新 2026年11月01日mysql5.7 datetime 默认值0000-00-00 00:00:00出错
mysql5.7 datetime 默认值0000-00-00 00:00:00出错
实验环境:MySQL 5.7.17
使用wordpress的表wp_posts
mysql > CREATE TABLE `wp_posts` ( -> `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, -> `post_author` bigint(20) unsigned NOT NULL DEFAULT '0', -> `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', -> `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', -> `post_content` longtext NOT NULL, -> `post_title` text NOT NULL, -> `post_excerpt` text NOT NULL, -> `post_status` varchar(20) NOT NULL DEFAULT 'publish', -> `comment_status` varchar(20) NOT NULL DEFAULT 'open', -> `ping_status` varchar(20) NOT NULL DEFAULT 'open', -> `post_password` varchar(20) NOT NULL DEFAULT '', -> `post_name` varchar(200) NOT NULL DEFAULT '', -> `to_ping` text NOT NULL, -> `pinged` text NOT NULL, -> `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', -> `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', -> `post_content_filtered` longtext NOT NULL, -> `post_parent` bigint(20) unsigned NOT NULL DEFAULT '0', -> `guid` varchar(255) NOT NULL DEFAULT '', -> `menu_order` int(11) NOT NULL DEFAULT '0', -> `post_type` varchar(20) NOT NULL DEFAULT 'post', -> `post_mime_type` varchar(100) NOT NULL DEFAULT '', -> `comment_count` bigint(20) NOT NULL DEFAULT '0', -> PRIMARY KEY (`ID`), -> KEY `post_name` (`post_name`(191)), -> KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), -> KEY `post_parent` (`post_parent`), -> KEY `post_author` (`post_author`) -> ) ENGINE=innodb AUTO_INCREMENT=536 DEFAULT CHARSET=utf8;ERROR 1067 (42000): Invalid default value for 'post_date'
出现以上问题:是因为mysql5.7版本后,sql_mode参数被设置了NO_ZERO_IN_DATE,NO_ZERO_DATE
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.01 sec)
解决方法:
方法一:临时修改方法
mysql> set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;mysql> set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
方法二:永久修改方法,需要重启mysql服务:修改mysql的配置文件my.cnf,添加以下参数
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION //实际是去除NO_ZERO_IN_DATE,NO_ZERO_DATE
方法三:修改datetime的默认值
方法
参数
实际
文件
版本
环境
问题
永久
实验
服务
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
互联网科技活动banner
互联网核心科技是什么
互联网科技垄断
科技制造互联网公司
期待互联网科技
致聘互联网科技
互联网科技视频素材
天扬科技互联网广告
镁科技互联网资讯平台
天速互联网络科技有限公司
北京大学互联网科技怎么样
互联网教育科技公司vipkid
互联网企业和科技型企业
恒生互联网科技指数跳水
江苏苏星互联网科技有限公司
江苏互联网智能科技软件
互联网科技融合创新
银川新华互联网科技学校原画
青岛互联网科技园
保险科技 互联网保险
互联网与新科技
上海致骋互联网科技
上游互联网科技
互联网 科技馆
互联网还是高科技吗
华夏互联网科技业
领航科技大厦互联网公司
富国互联网金融科技混合基金
广州燕处互联网科技有限公司