日星网 windows 中文论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 96|回复: 0

导入数据库时报错1067 – Invalid default value for ‘字段名’...

[复制链接]
发表于 2020-4-15 02:38:01 | 显示全部楼层 |阅读模式
这种报错多是你mysql升级到5.7以上而引起的默认值不兼容的问题。看看你的字段名是什么,我的是时间字段,类型是datetime。想到可能是类型的默认值被限制了,查看 sql_mode。果然:NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数限制时间不能为0

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

  8. mysql>
复制代码


解决方案

在mysql的配置文件中添加如下代码。一般都是etc/mysql/mysqld.conf.d/目录下


  1. 在[mysqld]下面添加如下列:

  2. sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
复制代码


*MySQL8以上的用户
mysql 8 已经取消了 "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 两个参数,因此在mysql8 中不能加入这两个参数属性。

  1. sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO
复制代码

输入以上参数即可。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|小黑屋|日星网

GMT, 2020-7-4 09:07 PM , Processed in 0.015329 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表