LinuxサーバでMySQLのmax_allowed_packetの値を変更した際の方法をメモします。
MySQLのmax_allowed_packetで設定している値よりも大きいデータをサーバに送った時に、
エラーになってしまうことがあります。
エラーになってしまう場合は、パケットの最大の値を変更する必要があります。
MySQLでサーバに送るパケットの最大は16MBです。
下記に変更手順を記載します。
■ MySQLのmax_allowed_packetの値を変更
SSHでサーバにログインし、MySQLに接続します。
mysql -u root -p
最大のパケット値を確認する場合は下記を実行します。
show variables like 'max_allowed_packet';
実行するとmax_allowed_packetの設定値が表示されます。
※1MBの場合
mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)
max_allowed_packetの値を変更する場合は「my.cnf」を編集します。
vi /etc/my.cnf
max_allowed_packetの値を「16MB」に変更します。
max_allowed_packet=1MB
↓ 変更
max_allowed_packet=16MB
編集を保存し、MySQLを再起動します。
/etc/init.d/mysqld restart
再起動後、MySQLに接続しmax_allowed_packetの値を確認します。
mysql> show variables like 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 16777216 |
+--------------------+----------+
1 row in set (0.00 sec)
max_allowed_packetの値が変更されていればOKです。
MySQLでデータが大き過ぎてエラーが出てしまう場合は、
max_allowed_packetの値を確認すると解決するかもしれないです。