WordPressの管理画面にログインできないときの対処方法

ローカル開発環境にて、他のデバイスから仮想マシンにアクセスするために、仮想マシンのIPアドレスをあれこれ弄っていたのですが、不注意でワードプレスにログインできなくなりました。

ワードプレスで設定した変更前のURLにリダイレクトされるのが原因でした。

幸いにもローカルでの出来事なので焦らず対処できましたが、実際に運用しているWebサイトで起きたら「えらいこっちゃ」と騒いでいたかもしれませんね。

この記事では、ワードプレスの管理画面にログインできない場合に、データベースを直接編集して対処する方法をまとめます。

WordPressのURL設定をどうにかして変更したい

今回のケースではワードプレスのURL設定が原因なので、それを直す必要があります。

通常であれば、ワードプレスのダッシュボードから『設定』→『一般』と進んでURLを変更すればよいのですが、そもそも管理画面に入れないのでこの方法は使えません。

そこで、このURLが保存されているデータベースを直接編集します。

ローカル開発環境のwordpressをちゃんと読み込めるように設定

具体的にどうするのか:WordPressのデータベースを直接編集

wp_optionsテーブルにある『siteurl』と『home』の値を書き換えます。

サーバーにデータをアップロードしている場合、phpMyAdminなどのデータベース管理ソフトが導入されているので、それを使います。

しかし今回はローカル開発環境での出来事だったので、そのようなツールは導入していませんでした。

よって、ターミナルからデータベースに直接ログインし、SQL文を発行して更新します。

LAMP環境にてワードプレスを導入している場合でのみ使える方法です。

①ログイン→データベース名を確認

ターミナルを開き、以下のコマンド文でMariaDB(またはMySQL)にログインします。

$ MySQL -uユーザー名 -pパスワード

ログインできたら、以下のSQL文でデータベースのリストを確認します。

SHOW DATABASES;

私はワードプレスのデータベース名を『wpdb』としています。

これはワードプレスをインストールした際に設定するので、人によって違う値になります。

①MariaDBへログイン→SHOW databases

②WordPressのデータベースを開いてテーブルを確認

以下のSQL文でワードプレスのデータベースを開き、次の文でテーブル名を確認します。

USE wpdb;
SHOW TABLES;

私の環境では各テーブル名に『wp_』と接頭辞がついてますが、人によって違う値になっている場合があります。

②WordPressのデータベースのテーブルをすべて表示

③optionsテーブルのsiteurlとhomeの値を確認

『wp_options』の『siteurl』と『home』の値を更新するのですが、念のため以下のSQL文にてテーブルの中をのぞいてみます。

DESC wp_options;
SELECT * FROM wp_options
WHERE option_name IN ('siteurl','home');

ちゃんと存在しているようです。値も確認できました。

③optionsをのぞいてみる

optionsテーブルのsiteurlとhomeの値を更新

以下のSQL文で正しい値に更新します。

UPDATE wp_options SET option_value='正しいURL'
WHERE option_name IN ('siteurl','home');

④更新する

まとめ

WordPressの管理画面にログインできない場合の対処方法をまとめました。

データベースを直接いじるのは中々骨が折れるので、ローカル開発環境においても、phpMyAdminのような管理ソフトは必要かなと感じました。