Navicat for MySQL 运行 .sql 文件导入数据时报错:[Err] 1067 – Invalid default value for ‘created_at’。
原因是 sql_mode 配置问题,在 MySQL5.7 之后,默认使用严格模式,配置为:
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
其中的 NO_ZERO_DATE 表示 MySQL 数据库不允许插入零日期,插入零日期会抛出错误而不是警告。
解决办法是使用宽松模式,具体操作如下:
Windows
打开 MySQL 根目录下的 my.ini 文件,在 mysqld 节点中添加下面的代码,保存后重启 MySQL 服务器
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Linux
打开 MySQL 配置文件 my.cnf,将
sql_mode = STRICT_TRANS_TABLES
修改为:
sql_mode = ANSI
保存后重启服务器