Help us understand the problem. What is going on with this article?

MySQLである程度大きいダンプファイルのインポートを行った際のERROR 2013 (HY000) at line : Lost connection to MySQL server during queryエラーの解決策

More than 3 years have passed since last update.

私が最近1GB近いMySQLのダンプファイルを用いてローカルの開発環境へDB復元を行う際に出現した
ERROR 2013 (HY000) at line : Lost connection to MySQL server during queryエラーの解決方法を記述します.

TL;DR

  • wait_timeout
  • max_allowed_paket
  • innodb_buffer_pool_size

を大きめに設定してみよう.

/etc/my.cnf

[mysqld]
wait_timeout            = 86400
max_allowed_packet      = 1G
innodb_buffer_pool_size = 1G

ERROR 2013 (HY000) at line : Lost connection to MySQL server during queryが出現したら

ERROR 2013 (HY000) at line : Lost connection to MySQL server during queryが出現してしまったら,/etc/my.cnf[mysqld]内にmax_allowed_packetを設定してみましょう.

[mysqld]
max_allowed_packet = 16M

多くの方がこれで直るみたい.
これ設定して直った!!って記事をよく見た気がする.
私の場合はここの値を16Mにしても512Mにしても1Gにしても2Gにしてもエラーが出てくるので違うなって思った.

原因はmax_allowed_packetではないと思ったとき

復元,ものすごく時間もかかるのに毎回エラーで終わるんだよね.
なんて時は/etc/my.cnf[mysqld]内にwait_timeoutinnodb_buffer_pool_sizeを設定してみましょう.

[mysqld]
wait_timeout            = 86400
innodb_buffer_pool_size = 1G

私はこれで直りました.
max_allowed_packetは原因ではないなと思いながらも1G(ダンプファイルがそれくらいだったので)にしておいたので,最終的に追記した設定は以下の通りになりました.

[mysqld]
wait_timeout            = 86400
max_allowed_packet      = 1G
innodb_buffer_pool_size = 1G

もしも同じような境遇で困っている方がいれば参考にどうぞ.

おまけ

ダンプファイルをガッツガツ復元させてるとログファイルが一杯になってしまったりしませんか?
このログファイルを真っ新にしたいと思った時,sudo cat /dev/nullがパーミッションエラーで弾かれて泣いたので一緒にメモとして記述しておきます.

$ sudo cat /dev/null | sudo tee mysql-query.log

以上.

shy_azusa
Ruby/JavaScript/CoffeeScript/PHP/iPhone 8/PS4/iMac/MBP/macOS/iOS/MtG/Carbonara/uncensored
mohikanz
エンジニアのための雑談コミュニティ
https://mohikanz.slack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away