xamppのphpMyAdminでSQLインポート時のエラー(#2006 MySQL server has gone away)に対処

xamppでテスト環境を起こす際に、MYSQLデータをphpMyAdminからインポートしようとしたところ、エラーとなり途中までしかインポートできませんでした。

いままでそんなことなかったのに、なぜ何だろうと原因を調べていたら、おもったよりちょっとしたことでした。

忘備録として記録いたします。

現象は次の通り

phpMyAdminでSQLをインポートしようとすると、以下のエラーが発生しました。
なにやらMYSQLと接続が切断された的なエラーですが、なんでそうなったのか今一つよくわかりません。

対処方法

my.iniファイルのmax_allowed_packet値を1M→64Mに増やすことで直りました。

MYSQLを再起動して再度インポートするとうまくいきました。

思ったより簡単な作業で対処できました。
ただここで疑問がわきました。

max_allowed_packetが小さいとなぜエラーになったのかと?

max_allowed_packetとはなにか?

max_allowed_packetっていったい何?
と思い、調べてみました。

max_allowed_packetとは、1回で処理できるパケットサイズということでした。

はて?
わかるような、わからないような。

パケットサイズの最大値ということはわかりましたが、1回で処理できるパケットサイズとは何?
とさらに疑問がわきました。

ということでさらに調べてみると次のようなことでした。

SQL1文あたりの最大サイズの設定値
例えば10データあれば、SQLが10文になります。
1データのサイズが、max_allowed_packet値より大きいサイズの場合、エラーになるということです。

例えば、データベースに直接画像を保存している場合などです。
そういった場合、1Mだとすぐにエラーになります。

今回の場合、読み込んだSQLデータの中に1Mを超える1文があったため、phpMyAdminでエラー中断となっていました。

理屈がわかると、対処方法がわかるものです。

今回のレポートは以上です。
読んでいただいてありがとうございました。


ホームページに関するお悩み事やご相談事がございましたら私どもまでご連絡ください。 鋭意ご対応申し上げます。
ホームページのご提案もさせていただいております