これまでずっと運営していたサイトが、ある日突然「データベース接続エラー」と表示されてしまいました。
この時コアファイル・プラグイン・テーマの更新問題でもなく、wp-adminにアクセスへすると「One or more database tables are unavailable. The database may need to be repair」といったエラー文が表示されました。
DBに異常があるようですが、これを直すためにはWordPerssコアに備わるリペアツールを起動する必要があります。
ちなみにですが、この時の原因は恐らくサーバー負荷で、ログイン試行が異常なほど多かったです。
<WordPressが入るドメイン>/wp-admin/maint/repair.php
ここにリペアツールがあります。
とはいえこのままアクセスしてもリペアツールは起動できません。リペアツールを許可する設定をwp-config.phpに追加する必要があります。
リペアツールを許可する前に、外部にアクセスされないよう制限を掛けておきましょう。
define('WP_ALLOW_REPAIR', true);
wp-config.phpに設定したあとリペアツールのページへアクセスすると修復画面が表示されます。
最適化と修復がありますので、ここから修復を行ないましょう。
チェックポイント
- リペアツールからの修復中、エラーが出る可能性もある
-
エラーが出てももう一度修復を行なうと直るかもしれません。
落ち着いて作業しましょう。 - リペアツールの起動を許可する時にはIP制限だけでも掛けておく
-
htaccessからのIP制限なら、以下の記述でいけるはずです。
RewriteEngine On <IfModule mod_rewrite.c> RewriteCond %{REMOTE_ADDR} !=<使用するIPアドレス> RewriteRule ^wp-admin\/maint\/repair\.php$ http\:\/\/0\.0\.0\.0\/ [R=301,L,QSD] </IfModule>
- 修復した後はリペアツールを使用できないようにする
-
修復後、リペアツールは不要です。
誤って外部からアクセスされる事がないよう、wp-config.phpに追加した設定は削除しておきましょう。