WordPressの管理画面にログインできないときの対処方法
ローカル開発環境にて、他のデバイスから仮想マシンにアクセスするために、仮想マシンのIPアドレスをあれこれ弄っていたのですが、不注意でワードプレスにログインできなくなりました。
ワードプレスで設定した変更前のURLにリダイレクトされるのが原因でした。
幸いにもローカルでの出来事なので焦らず対処できましたが、実際に運用しているWebサイトで起きたら「えらいこっちゃ」と騒いでいたかもしれませんね。
この記事では、ワードプレスの管理画面にログインできない場合に、データベースを直接編集して対処する方法をまとめます。
WordPressのURL設定をどうにかして変更したい
今回のケースではワードプレスのURL設定が原因なので、それを直す必要があります。
通常であれば、ワードプレスのダッシュボードから『設定』→『一般』と進んでURLを変更すればよいのですが、そもそも管理画面に入れないのでこの方法は使えません。
そこで、このURLが保存されているデータベースを直接編集します。
具体的にどうするのか:WordPressのデータベースを直接編集
wp_optionsテーブルにある『siteurl』と『home』の値を書き換えます。
サーバーにデータをアップロードしている場合、phpMyAdminなどのデータベース管理ソフトが導入されているので、それを使います。
しかし今回はローカル開発環境での出来事だったので、そのようなツールは導入していませんでした。
よって、ターミナルからデータベースに直接ログインし、SQL文を発行して更新します。
LAMP環境にてワードプレスを導入している場合でのみ使える方法です。
①ログイン→データベース名を確認
ターミナルを開き、以下のコマンド文でMariaDB(またはMySQL)にログインします。
$ MySQL -uユーザー名 -pパスワード
ログインできたら、以下のSQL文でデータベースのリストを確認します。
SHOW DATABASES;
私はワードプレスのデータベース名を『wpdb』としています。
これはワードプレスをインストールした際に設定するので、人によって違う値になります。
②WordPressのデータベースを開いてテーブルを確認
以下のSQL文でワードプレスのデータベースを開き、次の文でテーブル名を確認します。
USE wpdb;
SHOW TABLES;
私の環境では各テーブル名に『wp_』と接頭辞がついてますが、人によって違う値になっている場合があります。
③optionsテーブルのsiteurlとhomeの値を確認
『wp_options』の『siteurl』と『home』の値を更新するのですが、念のため以下のSQL文にてテーブルの中をのぞいてみます。
DESC wp_options;
SELECT * FROM wp_options
WHERE option_name IN ('siteurl','home');
ちゃんと存在しているようです。値も確認できました。
optionsテーブルのsiteurlとhomeの値を更新
以下のSQL文で正しい値に更新します。
UPDATE wp_options SET option_value='正しいURL'
WHERE option_name IN ('siteurl','home');
まとめ
WordPressの管理画面にログインできない場合の対処方法をまとめました。
データベースを直接いじるのは中々骨が折れるので、ローカル開発環境においても、phpMyAdminのような管理ソフトは必要かなと感じました。