MySQL でクライアントからサーバに送ることができるパケットの最大は 16MB です。しかしデフォルトでは 1MB になっています。画像を DB に格納している OpenPNE のようなアプリケーションではこの制限に引っかかってしまうことがあります。

max_allowed_packet の確認

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

max_allowed_packet を SQL により変更する

mysql> set global max_allowed_packet = 1047552;

この方法だと MySQL の再起動なしにすぐに設定を反映できます。ただ、再起動すると当然ですが、設定は元に戻ります。

max_allowed_packet を my.cnf で設定する

my.cnf

[mysqld]
max_allowed_packet=16MB

MySQL を再起動すれば設定が反映されます。

関連する投稿