1. 程式人生 > >批量導入大量數據 -- MySQL server has gone away

批量導入大量數據 -- MySQL server has gone away

大數 global 數據 variable 默認值 class num 大數據 set

官方解釋是適當增大 max_allowed_packet 參數可以使client端到server端傳遞大數據時,系統能夠分配更多的擴展內存來處理。

查看mysql max_allowed_packet的值

mysql> show global variables like ‘max_allowed_packet‘;
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+

可以看到是4M,然後調大為256M(1024*1024*256)

mysql> set global max_allowed_packet=268435456;
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like ‘max_allowed_packet‘;
+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| max_allowed_packet | 268435456 |
+--------------------+-----------+
1 row in set (0.00 sec)

修改後執行導入,一切正常,解決問題。


註意:
使用set global命令修改 max_allowed_packet 的值,重啟mysql後會失效,還原為默認值。

如果想重啟後不還原,可以打開 my.cnf 文件,添加 max_allowed_packet = 256M 即可。

批量導入大量數據 -- MySQL server has gone away