面對大資料庫檔案(一般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 日 |