MYSQL匯入過大檔案時的解決辦法
阿新 • • 發佈:2019-02-14
mysql在通過匯入sql檔案可能會出現下面二個問題:
1.如果sql檔案過大,會出現"MySQL server has gone away"問題;
2.如果sql檔案資料有中文,會出現亂碼 www.2cto.com 解決問題: 問題1:出現MySQL server has gone away"問題,是因為mysql預設的"max_allowed_packet"變數值過小. 檢視目前配置
show VARIABLES like '%max_allowed_packet%';
顯示的結果為: +--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+
說明目前的配置是:1048576/1024/1024 = 1M 修改max_allowed_packet值:
方法1: SET GLOBAL max_allowed_packet = 500*1024*1024;(經測試無效)
方法2: 直接修改配置檔案,重啟mysql www.2cto.com windows中修改my.ini檔案,在linux中修改my.cnf檔案. C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\my.ini(安裝mysql時的,指定的資料檔案目錄)
重啟mysql後,在檢視修改後的max_allowed_packet值
問題2:登入時指定字符集編碼 mysql -uroot -P3308 -p123456 - -default-character-set=utf8 (-P是指指定埠號) 最後通過source命令 即可成功匯入: source E:ydj\test.sql
另外:設定max_allowed_packet 時的方法: 1)直接在my.ini中加入這個欄位 2)set global max_allowed_packet = 2*1024*1024*10
3)設定完以後檢視是否完成
show VARIABLES like '%max_allowed_packet%';
檢視下max_allowed_packet是否編輯成功
2.如果sql檔案資料有中文,會出現亂碼 www.2cto.com 解決問題: 問題1:出現MySQL server has gone away"問題,是因為mysql預設的"max_allowed_packet"變數值過小. 檢視目前配置
show VARIABLES like '%max_allowed_packet%';
顯示的結果為: +--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+
說明目前的配置是:1048576/1024/1024 = 1M 修改max_allowed_packet值:
方法1: SET GLOBAL max_allowed_packet = 500*1024*1024;(經測試無效)
方法2: 直接修改配置檔案,重啟mysql www.2cto.com windows中修改my.ini檔案,在linux中修改my.cnf檔案. C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\my.ini(安裝mysql時的,指定的資料檔案目錄)
重啟mysql後,在檢視修改後的max_allowed_packet值
問題2:登入時指定字符集編碼 mysql -uroot -P3308 -p123456 - -default-character-set=utf8 (-P是指指定埠號) 最後通過source命令 即可成功匯入: source E:ydj\test.sql
另外:設定max_allowed_packet 時的方法: 1)直接在my.ini中加入這個欄位 2)set global max_allowed_packet = 2*1024*1024*10