mysqlのデータをダンプファイルからインポートして、しばらく実行すると以下のようなエラーを吐いて終了しました。
このときの対応をメモします。
#エラーの内容
zcat ./IMPORT.dump.sql.gz | mysql -u USER_NAME -p STRONGPASSWORD DB_NAME;
(中略)
ERROR 2013 (HY000) at line : Lost connection to MySQL server during query
#とりあえずググる
エラーの内容でググってみます。
https://dev.mysql.com/doc/refman/5.6/ja/packet-too-large.html
一部のクライアントでは、パケットが大きすぎる場合、「クエリー中に MySQL サーバーへの接続が失われました」というエラーを受け取ることもあります。
どうやらこのようです。
#確認
サーバ側とクライアント側の設定を確認します。
- サーバ側
cat /etc/my.cnf
max_allowed_packet = 128M
サーバ側の設定は大丈夫そう、かな。
- クライアント側
mysql> show variables like "max_allowed_packet";
上記で確認できるようですが、今回のエラー発生時は確認するのを忘れていました。
たぶん少なかったんだろう。
#max_allowed_packetオプションを設定して起動
zcat ./IMPORT.dump.sql.gz | mysql --max_allowed_packet=128M -u USER_NAME -p STRONGPASSWORD DB_NAME;
上記を実行したところ、手元の環境ではエラーは発生しませんでした。