大きなコンテンツをMySQLテーブルに格納する時はmax_allowed_packetに注意する

非常に長文のコンテンツを格納するカラムを含むレコードを追加していた時必ず同じ行でエラーとなっていた。中の文字列や他の要因によるものかと思っていたが、max_allowed_packetの設定であることがわかった。

MariaDB [example]> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

現行このようになっているので、my.cnfに以上より大きい値を設定してから再起動します。

[mysqld]
max_allowed_packet = 16MB

再度実行するとこのようにmax_allowed_packetが変化し、大きなコンテンツのレコードでも問題が発生しませんでした。

MariaDB [example]> show variables like 'max_allowed_packet';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 16777216 |
+--------------------+----------+

参考
https://colo-ri.jp/develop/2011/01/mysql-image-save-checkpoints.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA