web-dev-qa-db-ja.com

mysqldumpエラー2013

MySQLでバックアップしたいデータベースがインストールされています。問題は「maia_mail」テーブルのエクスポートでmysqldumpが失敗することです

# 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秒未満で実行され、上記のようにエラーが発生します。

DBの合計サイズは1.3GBで、maia_mailテーブルは1.0GBです

my.cnfこれらのセットがあります:

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

データベースをダンプする方法についてアドバイスまたはガイダンスを提供してください。

18
garfink

Mysqldumpを機能させるために、強引なInnoDB設定を変更することを簡単に提案できます。あなたは私が提案について何をしているのか気に入らないかもしれませんが、私はそれがあなたの最良の(唯一の)オプションだと信じています。ここに行く:

提案#1:拡張挿入を無効にする

Mysqldumpのデフォルト設定には、単一のINSERTで数百または数千の行をまとめることが含まれます。これは拡張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:バイナリデータを16進数としてダンプする(オプション)

Mysqldumpのバイナリデータをよりポータブルにするには このようなデータを16進数でダンプする

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

悪いニュース:それはmysqldumpをもう少し膨らませます

試してみる !!!

注: max_allowed_pa​​cketの最大サイズは1Gです

13
RolandoMySQLDBA

12 GBのデータベースをダンプしようとしたときにも同じエラーが発生しました。私はそれを動作させるために以下の変更を行いました。

  1. max_allowed_pa​​cketを1024Mに設定
  2. net_read_timeoutを7200に設定
  3. net_write_timeoutを7200に設定

注:私はタイムアウト値が高すぎる(7200秒、つまり20時間)ことを知っています。しかし、私は偶然を排除するために意図的にそうしました。現在、最適なタイムアウト値を見つけています。

5
real gadha

My.ini(Windows)またはmy.cnf(Linux)構成ファイルに以下を含めるだけです。

[mysqld]
max_allowed_packet=1024M 

[mysqldump]
max_allowed_packet=1024M 
net_read_timeout=3600 
net_write_timeout=3600
3
Jesus Uzcanga

ダンプを取るのに十分なメモリがあることを確認してください。ダンプを取る間、メモリをチェックし続けてください。次のようなコマンドを使用します。

free -mt

ダンプを取るときにメモリが枯渇すると、

mysqldump:エラー2013:接続が失われました

1
Ranjeet Ranjan

私が見つけた:

--max-allowed-packet=1G --net-buffer-length=32704

...ネット読み取り/書き込みタイムアウトの変更、TCPキープアライブなど)にもかかわらず、以前は(確実に)機能しなかった場所で機能します。

max_allowed_packet設定だけでは機能しなかったため、net_buffer_lengthを使用する場合は必要ない場合があります。 - ralph-bolton

max-allowed-packetおよびnet-buffer-lengthの変更は、拡張挿入を無効にするよりもはるかに良いようです。 - クリストファー

参照 十分な大きさのmax_allowed_pa​​cketと、なぜそれを変更する必要があるのか​​?

1
user126897