1. 程式人生 > >MYSQL匯入過大檔案時的解決辦法

MYSQL匯入過大檔案時的解決辦法

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是否編輯成功