0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【phpmyadmin】インポート時に「#2006 - MySQL server has gone away」エラーが表示された場合の原因と解決方法

Posted at

概要

  • phpmyadminでsql.ZIPをインポートした時に、以下のエラーが表示されました。
  • 本記事はこのエラーの解決方法を記載します。

image.png

エラー
静的解析:

解析中に 1 個のエラーが見つかりました。

式がありません。 (near "ON" at position 25)
SQL クエリ: コピー 編集 編集

SET FOREIGN_KEY_CHECKS = ON;

MySQL のメッセージ: ドキュメント

#2006 - MySQL server has gone away

原因:MySQLサーバーパケットの最大サイズ

  • MySQLサーバーのmax_allowed_packet設定値(パケットの最大サイズ)が不足している場合、MySQLサーバーが接続を中断してしまう場合があります。自分の場合もインポートしたZIPの半分くらいまでテーブルが作成されている状態で、途中で終わってしまったぽかったです。
  • SET FOREIGN_KEY_CHECKS = ON;を実行しようとしたら、MySQLサーバーに接続できなかった、というメッセージの意味であって、SET FOREIGN_KEY_CHECKS = ON;#2006 - MySQL server has gone awayは直接関係があるわけではなさそうです。
  • 他には、データベースの設定が正しくない場合やネットワークで問題が生じている場合に表示されることがあるらしいです。

解決方法:max_allowed_packetを変更する

  • MySQLサーバーのmax_allowed_packet設定値も変更する必要があります。
  • my.cnfファイルで以下を追加すればOKです(設定次第ではmysqld.cnfの可能性もあります)。
my.cnf
[mysqld]
max_allowed_packet=512M
  • 自分の場合は、Dockerコンテナでmysqlを起動していたので、docker-compose.ymlで起動する際に自動適用できるようにmy.cnfファイルをマウントする形にしました。インポートし直すとするたびにこの設定を加えるような運用だと面倒ですので。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?