Posted at

RDSでmax_allowed_packetの値を変更する

大きなサイズのSQLを実行しようとしたとき

MySQL server has gone away

となってしまうことがありますが

この場合、max_allowed_packet の値を確認すると解決する場合があります。

mysql> show variables like 'max_allowed_packet';

+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+

で現在の設定が確認できます。

私の環境では4MBになっていました。

例えばMySQL5.6であれば設定できる最大値は1GBですので、状況に応じて適切に設定してあげるとクエリが通せるようになると思います。

なおRDSの場合は、マネジメントコンソールからパラメータグループ内の設定を変更することになります。

タイプがDynamicになっていれば、インスタンスの再起動は不要です。


参考

[https://dev.mysql.com/doc/refman/5.6/ja/packet-too-large.html:embed:cite]