WordPressにおいて表題の通り。
■ 環境
- WordPress 4.8.1
■ きっかけ
先日WordPressのとあるプラグインをアップデートしたタイミングでアクセスが不安定になった。「DB接続エラー」的なものが表示されていたのでDBが落ちたのかと思ったのだが、DB自体は正常に稼働しているようであった。500が返っていたのでWebサーバも確認したが特に問題はなさそう。となるとプラグインをアップデートしたのが原因としか考えられなかった。
しかし管理画面にもアクセスできない状態ではプラグインを停止することもできない。ファイルを消してしまえば良いのかもしれないが、それだとDBとの整合性が合わなくて別のエラーになりかねない。というわけでDBの値を直接操作することにした。
■ MySQL
MySQLで接続し、”wp_options“テーブルの下記行を確認した。
mysql> select * from wp_options where option_name = 'active_plugins' \G
*************************** 1. row ***************************
option_id: 33
option_name: active_plugins
option_value: a:13:{i:0;s:27:"xx1/xx1.php";i:1;s:34:"xx2/xx2.php";i:2;s:43:"xx3/xx3.php";i:3;s:55:"...
autoload: yes
1 row in set (0.00 sec)
mysql>
上記のように”serialize“されたデータが入っていた。この”option_value“を空にしたところ正常にアクセスできるようになった。
もちろんプラグインは全て無効になっているので、アップデートして問題のあったもの以外のプラグインを再度有効化しておいた。
以上。