mysql 大文件数据导入时,一般会出现 “server has gone away” 问题,导致导入数据失败。
原因:
mysql会根据配置信息来限制server接受的数据包大小,过大的插入和更新操作,会被max_allowed_packet 参数所限制。
查看参数信息:
复制代码 代码示例:
show variables like '%max_allowed_packet%';
+--------------------+---------+
| variable_name | value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
目前为:1048576 = 1024*1024 = 1m
修改方法
1、编辑my.cnf来修改(windows下my.ini),在[mysqld]段或mysql的server配置段进行修改。
max_allowed_packet = 500m
如果找不到my.cnf可以通过
mysql --help | grep my.cnf
去寻找my.cnf文件。
2、进入mysql server
在mysql 命令行中运行:
set global max_allowed_packet = 500*1024*1024;
然后关闭掉这此mysql server链接,再进入。
show variables like '%max_allowed_packet%';
查看max_allowed_packet是否编辑成功