导入数据库表报错信息
1067 Invalid default value for ‘birthday’
报错信息如下图所示:
错误分析
报错原因: MySQL 升级到 5.7 而引起的默认值不兼容的问题。
可能是类型的默认值被限制了,查看 sql_mode
show variables like ‘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
至此问题解决,执行数据导入脚本,数据表导入成功。