mysql導入大大局部數據出現MySQL server has gone away的處理方法
發表時間:2023-07-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]因工作需要,需要導入一個200M左右的sql到user庫執行命令mysql> use user
Database changed
mysql> source /tmp/user.sql導...
因工作需要,需要導入一個
200M左右的sql到user庫
執行命令
mysql> use user
Database changed
mysql> source /tmp/user.sql
導入的過程中出現MySQL server has gone away錯誤,數據導入失敗。
錯誤信息如下:
ERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 11Current database: userERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 12Current database: userERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 13Current database: user
開始以為是超時導致,因此調大了 connect_timeout 和 wait_timeout 的值。
重新執行后問題依舊。
解決方法:
查看資料,發現了 max_allowed_packet 參數,
官方解釋是適當增大 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導入大批量數據出現MySQL server has gone away的解決方法,更多相關內容請關注php中文網。
相關推薦:
mysql 搜尋附近N公里內數據的實例
mysql 連接閃斷自動重連的方法
php 實現HTML實體編號與非ASCII字符串相互轉換類
以上就是mysql導入大批量數據出現MySQL server has gone away的解決方法的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。