mysql導入大批量數(shù)據(jù)出現(xiàn)MySQL server has gone away的解決方法

因工作需要,需要導入一個100M左右的sql文件到MySQL數(shù)據(jù)庫
導入的過程中出現(xiàn)ERROR 2006 MySQL server has gone away 錯誤,數(shù)據(jù)導入失敗。
是因為sql文件過大,超過了MySQL預設的最大允許值。

**解決方法:
**查看資料,找到設置允許導入的sql大小的參數(shù): max_allowed_packet , 官方解釋是適當增大 max_allowed_packet 參數(shù)可以使client端到server端傳遞大數(shù)據(jù)時,系統(tǒng)能夠分配更多的擴展內(nèi)存來處理。查看MySQL max_allowed_packet的值

mysql> show global variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

可以看到是1M左右,然后調(diào)大為128M(1024*1024*128)

mysql> set global max_allowed_packet=134217728;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'max_allowed_packet';
+-------------------+-----------+
| Variable_name     | Value     |
+-------------------+-----------+
| max_allowed_packet| 134217728 |
+-------------------+-----------+
1 row in set (0.00 sec)

修改后執(zhí)行導入,一切正常,解決問題。
注意: 使用set global命令修改 max_allowed_packet 的值,重啟MySQL后會失效,還原為默認值。如果想重啟后不還原,可以打開 my.cnf 文件,修改 max_allowed_packet = 128M 即可。

本文標題:mysql導入大批量數(shù)據(jù)出現(xiàn)MySQL server has gone away的解決方法
文章作者:layjoy
原始鏈接:http://layjoy.space/2016/12/21/mysql-1/

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容