mysql5.7 datetime 默认值0000-00-00 00:00:00出错
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,mysql5.7 datetime 默认值0000-00-00 00:00:00出错实验环境:MySQL 5.7.17使用wordpress的表wp_postsmysql > CREATE TABLE
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
深入僧尼开展网络安全宣传活动
工业互联网 生物科技
西安互联网科技公司在哪里
解决网络安全问题的技术方法
付大额软件开发费账务处理
请求被源服务器防火墙中断
网络安全为什么是第五空间
高防服务器云免
不需要建立原型的软件开发模式是
酒店对网络技术的应用
专业录播服务器
郑州众志软件开发有限公司
武汉iosapp软件开发
从服务器获取时间失败
一个数据库可以有几个外模
利盟有服务器吗
吉林省开天通信网络技术有限公司
服务器冷却液a股
消费贷款软件开发公司
淘宝多少台服务器
如何查看数据库剩余表空间
网络技术重点
学网络技术有哪些网站可以借鉴
河南gps时钟同步数显钟服务器
宽带连接服务器名称
500台服务器怎么管理
第三代数据库技术发展阶段
温州应用软件开发服务
汽车刹车系统软件开发
淘宝多少台服务器