Mysql

mysqldump 錯誤 2013

  • January 19, 2022

我安裝了一個數據庫,我想在 mysql 中備份。問題是mysqldump導出“maia_mail”表失敗

# mysqldump -u root -p maia > maia.sql
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `maia_mail` at row: 15

它執行不到 30 秒,並如上所述出現錯誤。

數據庫的總大小為 1.3GB,maia_mail 表為 1.0GB

my.cnf我有這些設置:

[mysqld]
max_allowed_packet      = 1300M
[mysqldump]
max_allowed_packet      = 1300M

請指教或指導如何轉儲數據庫?

我可以很容易地建議更改 InnoDB 設置,這可能只是為了讓 mysqldump 工作而有點笨拙。您可能不喜歡我對建議的看法,但我相信這是您最好的(唯一)選擇。它是這樣的:

建議 #1:禁用擴展插入

mysqldump 的預設設置包括在單個 INSERT 中將數百或數千行聚集在一起。這稱為擴展插入。它導致超出 max_allowed_pa​​cket 的一些溢出

我回復了一個文章Sep 01, 2011MySQL 伺服器已經消失,阻礙了大型轉儲的導入),在那裡我討論了為導入大型 mysqldump 做同樣的事情。我相信禁用擴展 INSERT 也有助於創建麻煩的 mysqldump。

mysqldump -u root --skip-extended-insert -p maia > maia.sql

壞消息:這會為每一行創建一個 INSERT 命令。這肯定會增加執行 mysqldump 所需的時間。因此,重新載入所需的時間也會增加(可能增加 10-100 倍)。

我之前討論skip-extended-insert

建議#2:將二進制數據轉儲為十六進制(可選)

為了使 mysqldump 的二進制數據更具字節可移植性,以十六進制轉儲此類數據

mysqldump -u root --skip-extended-insert --hex-blob -p maia > maia.sql

壞消息:它會使 mysqldump 膨脹一點

試一試 !!!

旁注:max_allowed_pa​​cket 的最大大小為 1G

我在嘗試轉儲 12 GB 數據庫時也遇到了同樣的錯誤。我進行了以下更改以使其正常工作。

  1. 配置 max_allowed_pa​​cket 為 1024M
  2. 將 net_read_timeout 配置為 7200
  3. 將 net_write_timeout 配置為 7200

注意:我知道超時值太高(7200 秒,即 2 小時)。但我故意這樣做只是為了排除任何機會。我正在尋找最佳超時值。

引用自:https://dba.stackexchange.com/questions/97846