WordPressのデータベース復旧方法【Xserverでのバックアップ復元手順】
- WordPress
WordPressサイトに何らかのトラブルが発生し、ファイルのバックアップ(wp-config.phpとデータベースのSQLファイルなど)からデータベースを復旧したい、というケースの対処方法を解説します。本記事ではXserverを例にしていますが、国内の他のレンタルサーバーでも大まかな流れは同様です(管理画面の名称や手順は提供元によって異なるため、実際の操作はご利用のサーバーのマニュアルもあわせてご確認ください)。
本記事について: 本記事はXserverの公式マニュアルではなく、実際の操作画面をもとに作成した解説記事です。サーバーパネルの表示や仕様は契約プランや時期によって変更される場合があります。
STEP1 wp-config.phpでデータベースの接続情報を確認する
ファイルのバックアップの中からwp-config.phpをエディターで開きます。

少し下にスクロールすると、以下の4つの値が確認できます。この後の作業では、この値をそのまま使用します。
DB_NAME:データベース名DB_USER:ユーザー名DB_PASSWORD:パスワードDB_HOST:ホスト名

STEP2 phpMyAdminにログインする
サーバーパネルの「データベース」欄から「phpmyadmin」のリンクを開きます。

ログイン画面が表示されたら、STEP1で確認したDB_USERをユーザー名に、DB_PASSWORDをパスワードに入力してログインします。

STEP3 同じ名前のデータベースが既にあるか確認する
ログイン後、左側に表示されるデータベースの一覧に、STEP1で確認したDB_NAMEと同じ名前のデータベースがあるかを確認します。

- 同じ名前のデータベースがある場合 → 「STEP4 SQLファイルをインポートする」に進みます。
- 同じ名前のデータベースがない場合 → 「STEP6 MySQLデータベースを新しく作成する」に進みます。
STEP4 SQLファイルをインポートする(DBがある場合)
該当するデータベースを選択します。

上部の「インポート」タブを開き、「ファイルを選択」からバックアップのSQLファイルを選びます。

「エンコーディングへの変換」は初期値の「なし」のままにし、「インポート」をクリックします。

STEP5 siteurl・homeのURLを確認する(DBがある場合)
インポートしたデータベースのwp_optionsテーブルから、option_nameが「siteurl」「home」の行を探します。
- siteurl:WordPressアドレス
- home:サイトアドレス
それぞれのoption_valueを、新サイトの正しいURLに変更します(例:https://sample.co.jpやhttps://ex.sample.co.jp、https://sample.co.jp/wordpressなど)。

ここで、siteurl・home以外の値を誤って修正してしまった場合は、無理に直そうとせず、後述の「操作を誤ってしまった場合の対処法」の手順で全テーブルを削除し、STEP4から再度インポートし直すことをおすすめします。
ここまでの作業で、データベース側の対応は完了です。wp-config.phpは元の内容から変更する必要はありません(データベース名・ユーザー情報がすでに一致しているためです)。
STEP6 MySQLデータベースを新しく作成する(DBがない場合)
ここでのポイントは、新しく作成するデータベース名・ユーザー名・パスワードを、STEP1で確認したwp-config.phpの値と一致させることです。こうすることで、wp-config.php自体は書き換えずに済みます。
サーバーパネルの「データベース」欄から「MySQL設定」を開きます。

「MySQL追加」タブで、MySQLデータベース名にwp-config.phpのDB_NAMEと同じ値を入力し、「確認画面へ進む」から追加します。入力欄の前に表示されている部分は、契約サーバー固有の接頭辞です。DB_NAMEの値からこの接頭辞を除いた部分を入力してください。

続けて「MySQLユーザ追加」タブで、MySQLユーザIDとパスワードに、wp-config.phpのDB_USER・DB_PASSWORDと同じ値を入力し、「確認画面へ進む」から追加します。ユーザIDについても、入力欄の前の接頭辞を除いた部分をDB_USERの値に合わせて入力してください。

「MySQL一覧」タブで、作成したデータベースの「アクセス権未所有ユーザ」から、追加したユーザーを選択して「追加」をクリックし、紐づけます。

データベースとユーザーの準備ができたら、「STEP4 SQLファイルをインポートする」に戻り、SQLファイルのインポートとsiteurl・homeの確認(STEP5)を行ってください。
操作を誤ってしまった場合の対処法
インポート後の作業中に誤って必要なデータを書き換えてしまった場合は、対象のデータベースのテーブルを全て削除し、SQLファイルを再度インポートし直すのが確実です。
該当するデータベースを選択し、上部の「構造」タブを開きます。左下の「すべてチェックする」にチェックを入れます。

「チェックしたものを:」のプルダウンから「削除」を選択します。

確認画面が表示されたら、内容を確認して「はい」をクリックします。

テーブルが空の状態に戻ったら、「STEP4 SQLファイルをインポートする」の手順で、SQLファイルを最初からインポートし直してください。
よくあるトラブルと対処法
| 症状 | 考えられる原因 | 対処法 |
|---|---|---|
| phpMyAdminにログインできない | wp-config.phpのDB_USER・DB_PASSWORDの入力ミス、全角・半角の違いなど | 値をコピー&ペーストして再入力する |
| 「不明なデータベースです」といった趣旨のエラーになる | DB_NAMEと同じ名前のデータベースがサーバー上に存在しない | STEP6の手順でデータベースとユーザーを新規作成する |
| インポート後もサイトにアクセスするとエラーになる | インポートが最後まで完了していない、またはsiteurl・homeの値が誤っている | STEP4・STEP5の手順を再確認する |
発行した情報の取り扱いについて
wp-config.phpに記載されているデータベースの接続情報は、データベースへ直接アクセスできてしまう重要な情報です。以下の点に注意して取り扱ってください。
wp-config.phpや、作業中に控えた接続情報のメモは、公開ディレクトリや第三者から見える場所に置かない- 制作会社など第三者と共有する場合は、チャットやメールなど平文でのやり取りを避け、安全な方法で受け渡しする
まとめ
データベースの復旧は、まずwp-config.phpの接続情報を確認し、同じ名前のデータベースがサーバー上に既にあるかどうかで対応が分かれます。既にある場合はSQLファイルをインポートしてsiteurl・homeを直すだけで完了し、ない場合はwp-config.phpの値に合わせてデータベースとユーザーを新規作成すれば、wp-config.php自体を書き換えずに復旧できます。作業を誤ってしまっても、テーブルを削除してインポートをやり直せば元の状態に戻せるので、慌てずに手順を追ってみてください。