【WordPress】 MySQL server has gone away エラー。

たぶんWordPress本体を更新したタイミングで生じた問題なのだけれど、通常の手順どおりに、

  1. WordPressを更新。
  2. ネットワークを更新。

としてやったら、ダッシュボード上では特にエラーが表示されることもなく『すべて完了しました』と作業は終了。

てっきり正常に更新されたと思ったら、どうもデータベースから各種データを読み込めなくなってしまっているのです。投稿リストも空。カテゴリリストも空。

phpMyAdminで直接データベースを確認してみると、データ自体はちゃんと残っています。データベース更新処理が上手くいかなかったのか。それとも、たまたま更新のタイミングで気づいただけで、暫く前からデータベースを上手く扱えなくなっていたのかな。

さて。

WordPressをインストールしているディレクトリに error_log が出力されていたのでチェックしてみる。

WordPress データベースエラー: MySQL server has gone away for query 超長いMySQLクエリ

というエラーが記録されています。

この "MySQL Server has gone away" というエラーについて調べてみると、クライアントからサーバに送ることができるパケットの最大量を超過した場合に出るエラーのようですな。

つまり今回は、WordPressが発行した超長いクエリのサイズがMySQLのバケット許容量を超えているので上手く処理が出来ない…という現象のようです。

ということは、MySQLの設定で、このパケットの最大値を変更してやれば良いのだな。

☆MySQLの設定ファイル(うちの場合は /etc/my.cnf)の [mysqld] セクション、
  max_allowed_packet=1M
となっているのを、
  max_alloewd_packet=16M
に変更。
そしてMySQLを再起動。

で、もう一回『ネットワークを更新』してやったら新たなエラーは無し。WordPressは無事に正常運転に戻りましたとさ。

カテゴリ: