MySQLトラブルシューティング - ERROR 2006 (HY000) at line ***: MySQL server has gone away
概要
DBインポート時に掲題のエラーが発生しました。
インポートサイズが大きすぎる為です。
インポートデータサイズのデフォルト値は 1M
です。
以下コマンドで確認できます。
1 | mysql> show variables like 'max_allowed_packet'; |
対策
2点あります。
- mysqlコマンドラインから設定 (一時的)
- my.cnf に設定 (恒久的)
mysqlコマンドラインから一時的に引き上げる
再起動の必要がなく影響範囲が少なく済みます。
但し、再起動後、デフォルト値に戻るので
恒久的な対応が必要な場合
my.cnf に設定しmysqldを再起動する必要があります。
例) 10MB に設定
1 | mysql> set global max_allowed_packet = 1000000; |
my.cnf に max_allowed_packet
を引き上げる様設定
my.cnf パス探索
1 | # mysql --help | grep my.cnf |
以下の順で my.cnf を探しています。/etc/my.cnf
→ /etc/mysql/my.cnf
→ /usr/etc/my.cnf
→ ~/.my.cnf
個々の環境で異なるので本当に存在するかも含め設定ファイルを見定めてください。
おおよそ /etc/my.cnf
が一般的かと思います。
my.cnf に [mysqld] に属する様に設定します。
10MBに設定してみます。
1 | [mysqld] |
以上設定して再起動で設定反映完了です。
確認
設定が反映されているか確認します。
1 | mysql> show variables like 'max_allowed_packet'; |
以上
MySQLトラブルシューティング - ERROR 2006 (HY000) at line ***: MySQL server has gone away
https://kenzo0107.github.io/2015/12/16/2015-12-17-mysql-error-2006-hy000-mysql-server-has-gone-away/