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是否编辑成功