Linux:MySQLのmax_allowed_packetの値を変更する

LinuxサーバでMySQLmax_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の値を確認すると解決するかもしれないです。