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:エディタに貼り付けてファイルサイズ確認しました