MySQL server has gone away
有時候使用MySQL命令行導入備份時會出現「MySQL server has gone away」錯誤,這多是由於其中一些insert語句的大小超出了mysql目前設置的緩衝區大小。
SplitInsert能夠拆分全部大的insert語句,使每條insert語句只負責插入一個數據行,這樣再導入mysql的時候出錯的可能也會減少。
這是在nt系列內核下能夠直接執行的二進制版本:
SplitInsert下載地址:
http://www.elias.cn/uploads/MyProject/SplitInsert_Bin.zip
這是Python源代碼:
SplitInsert下載地址:
http://www.elias.cn/uploads/MyProject/SplitInsert_Src.zip
SplitInsert使用方法: SplitInsert 源sql文件名 目的sql文件名
處理後的sql腳本能夠使用mysql附帶的命令行工具導入數據庫:
mysql -u USER_NAME -p DATA_BASE_NAME < SQL_FILE_NAME
以後輸入用戶密碼,就會開始數據導入過程。
若是,拆分insert語句以後仍是出現「MySQL server has gone away」錯誤,能夠在mysql的配置文件的「[mysqld]」段增長相似:
set-variable = max_allowed_packet=16M
來擴大這個緩衝區的限制來解決。
轉自:
http://hi.baidu.com/powerdj/blog/item/d6db44a912dddefd1f17a2ff.html