MySQL 数据导入失败的常见报错和解决方法
0x01 MySQL 报 “Error 2006 MySQLserver has gone away” 的解决方法
找到 MySQL 安装目录下的 my.ini(Linux 下为 /etc/my.cnf)配置文件,进行如下配置:
max_allowed_packet=500M
wait_timeout=288000
interactive_timeout = 288000
修改后重启下 MySQL 服务后问题解决。
三个参数注释如下:
max_allowed_packet 是 MySQL 允许最大的数据包,也就是你发送的请求;
wait_timeout 是等待的最长时间,这个值大家可以自定义,但如果时间太短的话,超时就会报错;
max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度;
0x02 MySQL 报 “Error 1292 Incorrect datetime value: 0000-00-00 00:00:00 ……” 的解决方法
这是因为当前的 MySQL 不支持 datetime 类型数据为 0 的情况。
解决方法:修改 sql_mode 值
sql_mode:SQL Mode 定义了 MySQL 应支持的 SQL 语法、数据校验等,这样可以更容易地在不同的环境中使用 MySQL。
修改全局 sql_mode
查看全局 sql_mode:
select @@global.sql_mode;
可以看到 NO_ZERO_DATE 和 NO_ZERO_IN_DATE,把这两个设置去掉。
set @@global.sql_mode = '在原值基础上去掉上面两个后的值';
P.S. 修改当前 sql_mode 的 语句为 select @@sql_mode;
,之后操作同上。