mysql导入数据报错:1067 - Invalid default value for 'comment_date'的解决方法
分类:计算机 | 数据库 | MySQL | 数据导入导出 1744
更新:2022-04-03 16:53:33编辑
参考资料
https://www.psay.cn/toss/134.html
1 异常说明
最近在往新的电脑上迁移一个wordpress网站,在往新电脑上的mysql数据库中导入数据时,报错:1067 - Invalid default value for 'comment_date'。
2 异常分析
这个错误的字面意思就是字段‘comment_date’的默认值是无效的,于是查了一下我的导入sql文件,在里面的表wp_comments中找到了字段comment_date,它的默认值是:'0000-00-00 00:00:00',我电脑上装的mysql是5.7.x版本的,而在mysql5.7版本中mysql的sql_mode添加了两个参数:NO_ZERO_IN_DATE和NO_ZERO_DATE,其中NO_ZERO_IN_DATE表示mysql中插入的时间字段值(包括字段的默认值),不允许日期和月份为0;NO_ZERO_DATE表示mysql中插入的时间字段值(包括字段的默认值),不允许日期为0。
3 异常解决
3.1 方案1-修改sql语句中comment_date的默认值
既然mysql不允许comment_date的默认值中有0,那么我们就将comment_date的默认值设置为'1970-01-01 08:00:01',包括有些字段的值如果是0的话,也给它设置为'1970-01-01 08:00:01'。
3.2 直接修改mysql配置文件my.cnf或my.ini(暂未生效)
在网上看到另外一种方法说的是可以在mysql的配置文件my.cnf或者my.ini中的[mysqld]下面添加如下内容:
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
然后重启mysql服务即可。
但是我在windows版的mysql配置文件my.ini添加了sql_mode的配置后,mysql启动不了了,暂时不清楚是什么问题。
猿导航
阅读排行榜
- 1vue和el-table使用经验-如何刷新表格数据10886
- 2three.js加载3D瓦片和3dtiles数据生成交互式地图的开源项目9452
- 3Microsoft Visual C++ Redistributable是什么,有什么作用?7182
- 4mybatis使用经验——mybatis-spring-boot-starter和mybatis的版本对应关系表(持续更新~)5760
- 5uni-app使用经验—vue页面和html页面如何互相调用接口并传参5438
- 6Spring学习经验—@ResponseBody注解的使用说明4845
- 7Intellij IDEA下的版本控制VCS的启用与关闭4789
- 8Druid异常解决经验—java.sql.SQLException url not set4466
- 9如何用批处理命令(bat脚本)启动和停止windows服务4231
- 10nuxt.js项目中如何添加和使用全局变量4098
- 11解决SpringBoot使用maven下载不了jar包的问题3452
- 12linux中解压tar.gz文件报错“gzip: stdin: invalid compressed data--format violated”3345
- 13nuxtjs asyncData使用经验—如何发起多个axios请求并携带参数3206
- 14在Nuxt.js项目的head中引用外部js文件3043
- 15在NVIDIA控制面板设置参数时提示“拒绝访问 无法应用选定的设置到您的系统”的解决方法之一3020