DB直接操作でプラグイン無効化

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&gt

上記のように”serialize“されたデータが入っていた。この”option_value“を空にしたところ正常にアクセスできるようになった。

もちろんプラグインは全て無効になっているので、アップデートして問題のあったもの以外のプラグインを再度有効化しておいた。

以上。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください