萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysqldump 導出發生Lost connection to MySQL server during query

mysqldump 導出發生Lost connection to MySQL server during query

mysqldump 導出發生Lost connection to MySQL server during query問題要如何處理呢,在網上找了一下出現此問題可能由兩種原因了,我們一起來看解決辦法.

在mysqldump備份導出的時候類似用如下語句導出數據

mysqldump -uroot -p’passwd’ –opt –default-character-set=utf8 –triggers -R –hex-blob –single-transaction –no-autocommit –master-data=2 test_game mail >mail.sql

出現類似如下報錯:

mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `mail` at row: 1754283

查詢資料

大概說是因為mysqldump來不及接受mysql server端發送過來的數據,Server端的數據就會積壓在內存中等待發送,這個等待不是無限期的,當Server的等待時間超過net_write_timeout(默認是60秒)時它就失去了耐心,mysqldump的連接會被斷開,同時拋出錯誤Got error: 2013: Lost connection。

增加net_write_timeout可以解決上述的問題的。在實踐中發現,在增大 net_write_timeout後,Server端會消耗更多的內存,有時甚至會導致swap的使用(並不確定是不是修改 net_write_timeout所至)。建議在mysqldump之前修改net_write_timeout為一個較大的值(如1800),在 mysqldump結束後,在將這個值修改到默認的60。

在sql命令行裡面設置臨時全局生效用類似如下命令:

SET GLOBAL net_write_timeout=1800;

修改了這個參數後再備份,不再報錯

注意,這個參數不是mysqldump選項,而是mysql的一個配置參數。


其它可能遇到error: 2013的解決方法:

在mysql選項文件(如my.cnf)中加入

[mysqld]

skip-name-resolve

禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間

copyright © 萬盛學電腦網 all rights reserved