Invalid_default_value

导入数据库表报错1067 Invalid default value for ‘birthday’

报错信息如下图所示:
error-report

错误分析

报错原因: MySQL 升级到 5.7 而引起的默认值不兼容的问题。

可能是类型的默认值被限制了,查看 sql_mode


show variables like ‘sql_mode’;

sql_mode

可以看到,NO_ZERO_IN_DATE,NO_ZERO_DATE 这两个参数限制时间不能为0

解决问题

  • 临时解决问题
      set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
      
  • 永久解决问题
    直接修改 my.cnf 文件
    vim /usr/local/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

至此问题解决,数据表导入成功。

chosen1cwp wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!