SQL文が長すぎてエラー

SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
→サーバに送るパケットが最大サイズを超えているらしい。
SQL文が長すぎても発生するようなので、対象となるSQLの長さを確認*1したところ1.3Mありました。

そこで、以下のように設定変更したら解消しました。

# vim /etc/my.cnf
[mysqld]
#max_allowed_packet = 1M
max_allowed_packet = 4M

mysqlの再起動(reloadでは反映されなかったのでrestart)が必要です

同じ様なものがこちらにもあるので間違えないように

[mysqldump] ←注目
max_allowed_packet = 16M

max_allowed_packetの値は以下で確認できます

[root@hoge]# mysql -e "show variables like 'max_allowed_packet';"
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+


補足:クエリキャッシュも利かなくなっていたので、ついでにそちらの最大値も変更

[root@hoge]# mysql -e "show variables like 'query_cache_limit';"
+-------------------+---------+
| Variable_name     | Value   |
+-------------------+---------+
| query_cache_limit | 1048576 |
+-------------------+---------+
[root@hoge]# mysql -e "set global query_cache_limit=4194304;"
[root@hoge]# mysql -e "show variables like 'query_cache_limit';"
+-------------------+---------+
| Variable_name     | Value   |
+-------------------+---------+
| query_cache_limit | 4194304 |
+-------------------+---------+

*1:エディタに貼り付けてファイルサイズ確認しました