WordPressのサーバーデータを紛失! データベースだけ残っている場合の復旧方法
WordPress本体やテーマ、画像などのサーバーファイルを失っても、 MySQLまたはMariaDBのデータベースが残っていれば、 投稿や固定ページなどを復旧できる可能性があります。
レンタルサーバーの解約、操作ミス、サーバー障害、不正アクセスなどによって、 WordPressのサーバーファイルが消えてしまうことがあります。
このとき、MySQLまたはMariaDBのデータベースが残っていれば、 サイトを完全には戻せなくても、記事本文や固定ページ、 ユーザー情報などの重要なコンテンツを復旧できる可能性があります。
ただし、WordPressのデータはデータベースだけに保存されているわけではありません。 画像、テーマ、プラグインなどは、通常サーバー上のファイルとして保存されています。
そのため、復旧作業では「データベースに残っている情報」と 「サーバーファイルとして失われた情報」を分けて考える必要があります。
CONCLUSION
最初に結論:DBがあれば記事は戻せる可能性が高い
WordPressのデータベースには、投稿、固定ページ、コメント、 ユーザー、カテゴリー、タグ、サイト設定などが保存されています。
そのため、データベースの内容が正常であれば、 新しいサーバーへWordPressを設置し、既存のデータベースへ接続することで、 サイトの主要な文章データを復旧できます。
復旧できる可能性が高いもの
- 投稿と固定ページの本文
- 記事タイトルと公開日時
- カテゴリーとタグ
- コメント
- ユーザー情報
- WordPressの基本設定
- カスタム投稿タイプの情報
- プラグインがDBへ保存した設定
DBだけでは復旧できないもの
- アップロード画像の実ファイル
- PDFや動画などの添付ファイル
- テーマ本体
- 独自に編集したテンプレート
- プラグイン本体
- 独自のCSSやJavaScript
- サーバー内だけに保存したバックアップ
DATABASE CONTENTS
WordPressのDBに保存されているもの
WordPressは複数のデータベーステーブルを使用して情報を管理しています。
テーブル名の先頭には、初期設定では
wp_という接頭辞が付いています。
| テーブル名 | 保存されている主な内容 | 重要度 |
|---|---|---|
wp_posts |
投稿、固定ページ、添付情報、カスタム投稿 | 非常に高い |
wp_postmeta |
カスタムフィールドなど投稿ごとの追加情報 | 非常に高い |
wp_options |
サイトURL、テーマ、プラグインなどの設定 | 非常に高い |
wp_users |
管理者を含むユーザー情報 | 高い |
wp_usermeta |
ユーザー権限やプロフィール情報 | 高い |
wp_terms |
カテゴリー名やタグ名 | 高い |
wp_comments |
投稿に付いたコメント | サイトによる |
WooCommerceや会員管理、予約管理、フォーム管理などのプラグインを 利用していた場合は、独自のテーブルが追加されていることがあります。
復旧時にはWordPressの標準テーブルだけでなく、 データベース内に存在するすべてのテーブルをバックアップしてください。
UNRECOVERABLE DATA
データベースだけでは戻らないもの
WordPressサイトは、データベースとサーバーファイルの組み合わせで構成されています。 データベースが残っていても、サーバー内に保存されていたファイルは 別途確保しなければ復元できません。
wordpress/
├── wp-admin/
├── wp-includes/
├── wp-content/
│ ├── themes/
│ ├── plugins/
│ └── uploads/
├── wp-config.php
└── .htaccess
wp-adminとwp-includesは、
WordPress公式パッケージから再取得できます。
一方、復旧時に最も重要になるのはwp-contentです。
wp-content/uploadsには画像やPDF、
wp-content/themesにはテーマ、
wp-content/pluginsにはプラグインが保存されています。
オリジナルテーマや直接編集したPHPファイルを紛失した場合は、 Gitリポジトリ、制作会社の保管データ、担当者のPCなどから 同じファイルを確保できない限り、完全復旧は困難です。
PREPARATION
復旧作業を始める前の準備
残っているデータベースを複製して保全する
復旧作業を開始する前に、現在残っているデータベースを 必ずSQLファイルとしてエクスポートしてください。
作業中に誤ってテーブルを削除したり、 WordPressの更新処理によってデータベース構造が変更されたりする可能性があります。
phpMyAdminを利用している場合は、対象データベースを選択し、 「エクスポート」からSQLファイルを取得します。
mysqldump \
--single-transaction \
--default-character-set=utf8mb4 \
-u DATABASE_USER \
-p DATABASE_NAME \
> wordpress-backup.sql
復旧に必要な情報を確認する
データベース名、データベースユーザー名、ホスト名、 テーブル接頭辞、旧サイトURL、使用テーマ名などを確認します。
特にテーブル接頭辞がwp_ではない場合は、
新しいwp-config.phpにも同じ接頭辞を設定する必要があります。
RECOVERY PROCEDURE
データベースからWordPressを復旧する手順
新しいサーバー環境を用意する
新しいレンタルサーバーまたは検証用サーバーを準備します。 いきなり本番ドメインで作業するのではなく、 テスト用ドメインやhostsファイルを使って確認する方法が安全です。
PHPとデータベースのバージョンは、 可能であれば以前の環境に近いものを選びます。
WordPress本体を設置する
WordPress公式パッケージを取得し、新しいサーバーへ配置します。 この段階では新規インストールを完了させる必要はありません。
以前利用していたWordPressのバージョンが分かる場合は、 近いバージョンから復旧を始めると互換性問題を減らせます。
データベースをインポートする
新しいデータベースを作成し、 保存していたSQLファイルをインポートします。
mysql \
--default-character-set=utf8mb4 \
-u DATABASE_USER \
-p DATABASE_NAME \
< wordpress-backup.sql
SQLファイルの容量が大きく、 phpMyAdminのアップロード上限を超える場合は、 SSHやレンタルサーバーのデータベース復元機能を利用します。
wp-config.phpを設定する
新しいサーバーのデータベース接続情報を
wp-config.phpへ記述します。
define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'database_password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
$table_prefix = 'wp_';
テーブル名がabc_postsとなっている場合は、
接頭辞を次のように変更します。
$table_prefix = 'abc_';
サイトURLを調整する
新旧サーバーでドメインが異なる場合は、
データベース内のhomeと
siteurlを変更します。
UPDATE wp_options
SET option_value = 'https://new.example.com'
WHERE option_name IN ('home', 'siteurl');
テーマとプラグインを再設置する
管理画面へログインできたら、 以前使用していたテーマとプラグインを再インストールします。
WordPress公式ディレクトリにあるものは、 同じ名称で検索して再取得できます。 有料テーマや有料プラグインは購入元からダウンロードしてください。
データベースに設定が残っていれば、 プラグイン本体を再設置することで以前の設定が復元される場合があります。
パーマリンクを再保存する
投稿ページで404エラーが発生する場合は、 WordPress管理画面の「設定」から「パーマリンク」を開き、 設定を変更せずに「変更を保存」を押します。
Apache環境の場合は、.htaccessが作成されているか、
書き込み権限が正しいかも確認してください。
MEDIA RECOVERY
画像データを復旧する方法
データベースには、画像のファイル名、保存先URL、タイトル、 代替テキストなどが残っている場合があります。
しかし画像本体は通常、
wp-content/uploadsに保存されているため、
サーバーファイルを紛失すると画像は表示できません。
レンタルサーバーの自動バックアップ
サーバー会社が過去数日から数週間分のバックアップを 保持している場合があります。
制作会社や担当者のローカル環境
制作時のデータ、FTP同期フォルダ、 開発環境、納品データなどを確認します。
CDNや外部ストレージ
Amazon S3、CDN、画像最適化サービスなどに、 オリジナル画像やキャッシュが残っている可能性があります。
Webアーカイブや検索エンジン
公開済みページの画像が、 キャッシュやアーカイブに残っている場合があります。
社内PCやクラウドストレージ
Google Drive、Dropbox、メール添付、 チャットツールなども確認してください。
画像ファイルを確保できたら、 元のURLと同じ年月ディレクトリへ配置します。
例えば画像URLが
/wp-content/uploads/2024/08/sample.jpgなら、
同じディレクトリ構造でアップロードします。
オリジナル画像だけが残っており、サムネイル画像がない場合は、 WP-CLIを使用して再生成できます。
wp media regenerate --yes
TROUBLESHOOTING
復旧時によくあるトラブル
データベース接続確立エラーが表示される
wp-config.phpのデータベース名、
ユーザー名、パスワード、ホスト名を確認してください。
データベースユーザーに、 対象データベースへの操作権限が付与されているかも確認します。
WordPressの新規インストール画面が表示される
WordPressが既存テーブルを認識できていない可能性があります。
$table_prefixと、
実際のテーブル接頭辞が一致しているか確認してください。
管理画面へログインできない
URL変更後にCookieやリダイレクト情報が残っている可能性があります。 ブラウザのCookieを削除し、 プライベートウィンドウでも確認してください。
WP-CLIを使用できる場合は、 次のコマンドでパスワードを変更できます。
wp user update admin \
--user_pass='NEW_STRONG_PASSWORD'
画面が真っ白になる、500エラーが発生する
テーマやプラグインとPHPの互換性問題が考えられます。 一時的にプラグインを無効化して確認します。
wp plugin deactivate --all
ページ内に古いドメインが残っている
投稿本文、ウィジェット、テーマ設定、 プラグイン設定などに旧URLが保存されている可能性があります。
wp search-replace \
'https://old.example.com' \
'https://new.example.com' \
--all-tables \
--precise \
--dry-run
最初は必ず--dry-runを付け、
置換対象を確認してから本実行してください。
SECURITY
復旧後に実施すべきセキュリティ対策
サーバーデータの紛失原因が不正アクセスである可能性も考慮し、 復旧後は認証情報をそのまま使い続けないでください。
- WordPress管理者のパスワードを変更する
- データベースユーザーのパスワードを変更する
- FTP、SFTP、SSHの認証情報を変更する
- サーバー管理画面のパスワードを変更する
- wp-config.phpの認証用ユニークキーを更新する
- 不審な管理者ユーザーが存在しないか確認する
- 不審なリダイレクトやJavaScriptがないか確認する
- WordPress本体、テーマ、プラグインを更新する
- 外部ストレージへの自動バックアップを設定する
復旧直後にすべてを一括更新すると、 エラーが発生した際に原因を特定しにくくなります。
まず復旧時点の状態をバックアップし、 WordPress本体、テーマ、プラグインの順に 動作確認をしながら更新してください。
SUMMARY
まとめ
WordPressのサーバーデータを紛失しても、 データベースが正常に残っていれば、 投稿、固定ページ、ユーザー、カテゴリー、 各種設定などを復旧できる可能性は十分にあります。
一方、画像、テーマ、プラグイン、 独自に編集したPHPやCSSなどは、 データベースだけでは復元できません。
サーバー会社のバックアップ、制作会社の保管データ、 ローカル環境、CDN、クラウドストレージなどを確認する必要があります。
復旧の基本手順
- 残っているデータベースをバックアップする
- 新しいサーバーと検証環境を準備する
- WordPress本体を設置する
- データベースをインポートする
wp-config.phpを設定する- URLとパーマリンクを調整する
- テーマ、プラグイン、画像を可能な範囲で戻す
- 動作確認後にセキュリティ対策を実施する
特にECサイトや会員サイトでは、 個人情報、注文情報、会員情報などを扱うため、 作業前にデータを保全し、必要に応じて専門業者へ相談してください。
WORDPRESS RECOVERY SUPPORT
WordPressの復旧でお困りですか?
データベースは残っているがサイトが表示できない、 画像やテーマを可能な限り復旧したいなど、 WordPressのトラブルについてご相談いただけます。
復旧について相談する