【MySQL篇】Navicat導入SQL大文件報錯終極解決方案
面對大數據庫文件(一般50M以上),使用Navicat導入的時候容易出現[ERR]2006等報錯問題,此文提供了幾種辦法,包括修改MySQL的配置參數在網上也有很多詳細教程介紹過,但此文精彩處在於前面幾種都不行的情況下,通過修改Navicat配置參數,來完成數據庫大文件的導入!!!—【suy】
一、不勾選「每個運行中運行多重查詢」
第一建議嘗試的方法,可快速檢驗。
(一)成功->那就恭喜你了!!!下面的沒你事了
(二)繼續報錯
常見下面三種情況報錯,那就繼續嘗試」第二、第三「的幾種方法!
1)顯示部分成功,有部分數據
2)顯示部分成功,無數據(實際沒有導入)
3)顯示全部出錯,無數據
二、修改MySQL配置
(一)「my.ini」配置文件修改
找到MySQL安裝目錄下的
1、修改max_allowed_packet參數、增加兩項參數
max_allowed_packet:用來控制其通信緩衝區的最大長度。是mysql允許最大的數據包(默認大小4M),遇到大的數據庫文件導入時經常報錯;
wait_timeout:# 服務器關閉非交互連接之前等待活動的秒數;
interactive_timeout:服務器關閉交互式連接前等待活動的秒數;
兩個值可自定義,但如果設置時間太短,容易超時後出現MySQL server has gone away [ERR]2006錯誤;
(注意:需要同時設置wait_timeout和interactive_timeout才會生效;如果報「too many connections」的錯誤,可以對這兩個參數進行適當調小些。)
max_allowed_packet=2000M
wait_timeout=2880000
interactive_timeout = 2880000
2、修改支持中文字符集編碼
檢查是否是中文編碼不支持的原因,客戶端默認的字符集default-character-set參數不支持中文,可以設置成gbk或utf8來支持中文。
修改對應的編碼
default-character-set=utf8
character-set-server=utf8
*注意:每次修改參數後,必須重新啟動MySQL服務才會有效。
(二)數據庫導入位置不對
需要在「表」上右鍵導入。這步主要是排查數據庫導入位置不對而造成的報錯!
(導入圖解:
三、修改Navicat的”max_allowed_packet“參數
上面都試了還不行,往往都是Navicat的配置問題。
路徑:工具(T)->服務器監控->MySQL->變量->max_allowed_packet;
//英文版:Tools->Server Monitor->MySQL->Variables->max_allowed_packet;
記得先在左側勾選「當前數據庫」,才會顯示右側變量的屬性表,再在變量里尋找max_allowed_packet,將其值改大,改為最大值!!!如果超過他的值,會提示並自動設為最大值。
這時候,一般勾選「每個運行中運行多重查詢」也能成功導入數據庫,如果不行就去掉勾選。
導入成功後,接着在表上右鍵再刷新下數據庫。
總結
紙上得來終覺淺,絕知此事要躬行—陸遊。
名稱 | 時間 |
---|---|
最後編輯日期: | 2020 年 12 月 03 日 |