您好,登錄后才能下訂單哦!
本文主要給大家介紹mysql大批量數據導入出現server has gone away問題處理解析,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續在億速云行業資訊里面關注我的更新文章的。
因工作需要,需要導入一個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的解決方法,更多相關內容請關注億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。