WordPressのサーバーデータ紛失時に、DBからサイトを復旧する方法


WordPressのサーバーデータを紛失! データベースだけ残っている場合の復旧方法

WordPress本体やテーマ、画像などのサーバーファイルを失っても、 MySQLまたはMariaDBのデータベースが残っていれば、 投稿や固定ページなどを復旧できる可能性があります。

レンタルサーバーの解約、操作ミス、サーバー障害、不正アクセスなどによって、 WordPressのサーバーファイルが消えてしまうことがあります。

このとき、MySQLまたはMariaDBのデータベースが残っていれば、 サイトを完全には戻せなくても、記事本文や固定ページ、 ユーザー情報などの重要なコンテンツを復旧できる可能性があります。

ただし、WordPressのデータはデータベースだけに保存されているわけではありません。 画像、テーマ、プラグインなどは、通常サーバー上のファイルとして保存されています。

そのため、復旧作業では「データベースに残っている情報」と 「サーバーファイルとして失われた情報」を分けて考える必要があります。

01

CONCLUSION

最初に結論:DBがあれば記事は戻せる可能性が高い

WordPressのデータベースには、投稿、固定ページ、コメント、 ユーザー、カテゴリー、タグ、サイト設定などが保存されています。

そのため、データベースの内容が正常であれば、 新しいサーバーへWordPressを設置し、既存のデータベースへ接続することで、 サイトの主要な文章データを復旧できます。

復旧できる可能性が高いもの

  • 投稿と固定ページの本文
  • 記事タイトルと公開日時
  • カテゴリーとタグ
  • コメント
  • ユーザー情報
  • WordPressの基本設定
  • カスタム投稿タイプの情報
  • プラグインがDBへ保存した設定

DBだけでは復旧できないもの

  • アップロード画像の実ファイル
  • PDFや動画などの添付ファイル
  • テーマ本体
  • 独自に編集したテンプレート
  • プラグイン本体
  • 独自のCSSやJavaScript
  • サーバー内だけに保存したバックアップ
02

DATABASE CONTENTS

WordPressのDBに保存されているもの

WordPressは複数のデータベーステーブルを使用して情報を管理しています。 テーブル名の先頭には、初期設定では wp_という接頭辞が付いています。

テーブル名 保存されている主な内容 重要度
wp_posts 投稿、固定ページ、添付情報、カスタム投稿 非常に高い
wp_postmeta カスタムフィールドなど投稿ごとの追加情報 非常に高い
wp_options サイトURL、テーマ、プラグインなどの設定 非常に高い
wp_users 管理者を含むユーザー情報 高い
wp_usermeta ユーザー権限やプロフィール情報 高い
wp_terms カテゴリー名やタグ名 高い
wp_comments 投稿に付いたコメント サイトによる

WooCommerceや会員管理、予約管理、フォーム管理などのプラグインを 利用していた場合は、独自のテーブルが追加されていることがあります。

復旧時にはWordPressの標準テーブルだけでなく、 データベース内に存在するすべてのテーブルをバックアップしてください。

03

UNRECOVERABLE DATA

データベースだけでは戻らないもの

WordPressサイトは、データベースとサーバーファイルの組み合わせで構成されています。 データベースが残っていても、サーバー内に保存されていたファイルは 別途確保しなければ復元できません。

WordPressのディレクトリ構成
wordpress/
├── wp-admin/
├── wp-includes/
├── wp-content/
│   ├── themes/
│   ├── plugins/
│   └── uploads/
├── wp-config.php
└── .htaccess

wp-adminwp-includesは、 WordPress公式パッケージから再取得できます。 一方、復旧時に最も重要になるのはwp-contentです。

wp-content/uploadsには画像やPDF、 wp-content/themesにはテーマ、 wp-content/pluginsにはプラグインが保存されています。

オリジナルテーマや直接編集したPHPファイルを紛失した場合は、 Gitリポジトリ、制作会社の保管データ、担当者のPCなどから 同じファイルを確保できない限り、完全復旧は困難です。

04

PREPARATION

復旧作業を始める前の準備

残っているデータベースを複製して保全する

復旧作業を開始する前に、現在残っているデータベースを 必ずSQLファイルとしてエクスポートしてください。

作業中に誤ってテーブルを削除したり、 WordPressの更新処理によってデータベース構造が変更されたりする可能性があります。

phpMyAdminを利用している場合は、対象データベースを選択し、 「エクスポート」からSQLファイルを取得します。

Terminal
mysqldump \
  --single-transaction \
  --default-character-set=utf8mb4 \
  -u DATABASE_USER \
  -p DATABASE_NAME \
  > wordpress-backup.sql

復旧に必要な情報を確認する

データベース名、データベースユーザー名、ホスト名、 テーブル接頭辞、旧サイトURL、使用テーマ名などを確認します。

特にテーブル接頭辞がwp_ではない場合は、 新しいwp-config.phpにも同じ接頭辞を設定する必要があります。

05

RECOVERY PROCEDURE

データベースからWordPressを復旧する手順

STEP 01

新しいサーバー環境を用意する

新しいレンタルサーバーまたは検証用サーバーを準備します。 いきなり本番ドメインで作業するのではなく、 テスト用ドメインやhostsファイルを使って確認する方法が安全です。

PHPとデータベースのバージョンは、 可能であれば以前の環境に近いものを選びます。

STEP 02

WordPress本体を設置する

WordPress公式パッケージを取得し、新しいサーバーへ配置します。 この段階では新規インストールを完了させる必要はありません。

以前利用していたWordPressのバージョンが分かる場合は、 近いバージョンから復旧を始めると互換性問題を減らせます。

STEP 03

データベースをインポートする

新しいデータベースを作成し、 保存していたSQLファイルをインポートします。

Terminal
mysql \
  --default-character-set=utf8mb4 \
  -u DATABASE_USER \
  -p DATABASE_NAME \
  < wordpress-backup.sql

SQLファイルの容量が大きく、 phpMyAdminのアップロード上限を超える場合は、 SSHやレンタルサーバーのデータベース復元機能を利用します。

STEP 04

wp-config.phpを設定する

新しいサーバーのデータベース接続情報を 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となっている場合は、 接頭辞を次のように変更します。

wp-config.php
$table_prefix = 'abc_';
STEP 05

サイトURLを調整する

新旧サーバーでドメインが異なる場合は、 データベース内のhomesiteurlを変更します。

SQL
UPDATE wp_options
SET option_value = 'https://new.example.com'
WHERE option_name IN ('home', 'siteurl');
STEP 06

テーマとプラグインを再設置する

管理画面へログインできたら、 以前使用していたテーマとプラグインを再インストールします。

WordPress公式ディレクトリにあるものは、 同じ名称で検索して再取得できます。 有料テーマや有料プラグインは購入元からダウンロードしてください。

データベースに設定が残っていれば、 プラグイン本体を再設置することで以前の設定が復元される場合があります。

STEP 07

パーマリンクを再保存する

投稿ページで404エラーが発生する場合は、 WordPress管理画面の「設定」から「パーマリンク」を開き、 設定を変更せずに「変更を保存」を押します。

Apache環境の場合は、.htaccessが作成されているか、 書き込み権限が正しいかも確認してください。

06

MEDIA RECOVERY

画像データを復旧する方法

データベースには、画像のファイル名、保存先URL、タイトル、 代替テキストなどが残っている場合があります。

しかし画像本体は通常、 wp-content/uploadsに保存されているため、 サーバーファイルを紛失すると画像は表示できません。

01

レンタルサーバーの自動バックアップ

サーバー会社が過去数日から数週間分のバックアップを 保持している場合があります。

02

制作会社や担当者のローカル環境

制作時のデータ、FTP同期フォルダ、 開発環境、納品データなどを確認します。

03

CDNや外部ストレージ

Amazon S3、CDN、画像最適化サービスなどに、 オリジナル画像やキャッシュが残っている可能性があります。

04

Webアーカイブや検索エンジン

公開済みページの画像が、 キャッシュやアーカイブに残っている場合があります。

05

社内PCやクラウドストレージ

Google Drive、Dropbox、メール添付、 チャットツールなども確認してください。

画像ファイルを確保できたら、 元のURLと同じ年月ディレクトリへ配置します。

例えば画像URLが /wp-content/uploads/2024/08/sample.jpgなら、 同じディレクトリ構造でアップロードします。

オリジナル画像だけが残っており、サムネイル画像がない場合は、 WP-CLIを使用して再生成できます。

WP-CLI
wp media regenerate --yes
07

TROUBLESHOOTING

復旧時によくあるトラブル

データベース接続確立エラーが表示される

wp-config.phpのデータベース名、 ユーザー名、パスワード、ホスト名を確認してください。

データベースユーザーに、 対象データベースへの操作権限が付与されているかも確認します。

WordPressの新規インストール画面が表示される

WordPressが既存テーブルを認識できていない可能性があります。

$table_prefixと、 実際のテーブル接頭辞が一致しているか確認してください。

管理画面へログインできない

URL変更後にCookieやリダイレクト情報が残っている可能性があります。 ブラウザのCookieを削除し、 プライベートウィンドウでも確認してください。

WP-CLIを使用できる場合は、 次のコマンドでパスワードを変更できます。

WP-CLI
wp user update admin \
  --user_pass='NEW_STRONG_PASSWORD'
画面が真っ白になる、500エラーが発生する

テーマやプラグインとPHPの互換性問題が考えられます。 一時的にプラグインを無効化して確認します。

WP-CLI
wp plugin deactivate --all
ページ内に古いドメインが残っている

投稿本文、ウィジェット、テーマ設定、 プラグイン設定などに旧URLが保存されている可能性があります。

WP-CLI
wp search-replace \
  'https://old.example.com' \
  'https://new.example.com' \
  --all-tables \
  --precise \
  --dry-run

最初は必ず--dry-runを付け、 置換対象を確認してから本実行してください。

08

SECURITY

復旧後に実施すべきセキュリティ対策

サーバーデータの紛失原因が不正アクセスである可能性も考慮し、 復旧後は認証情報をそのまま使い続けないでください。

  • WordPress管理者のパスワードを変更する
  • データベースユーザーのパスワードを変更する
  • FTP、SFTP、SSHの認証情報を変更する
  • サーバー管理画面のパスワードを変更する
  • wp-config.phpの認証用ユニークキーを更新する
  • 不審な管理者ユーザーが存在しないか確認する
  • 不審なリダイレクトやJavaScriptがないか確認する
  • WordPress本体、テーマ、プラグインを更新する
  • 外部ストレージへの自動バックアップを設定する

復旧直後にすべてを一括更新すると、 エラーが発生した際に原因を特定しにくくなります。

まず復旧時点の状態をバックアップし、 WordPress本体、テーマ、プラグインの順に 動作確認をしながら更新してください。

09

SUMMARY

まとめ

WordPressのサーバーデータを紛失しても、 データベースが正常に残っていれば、 投稿、固定ページ、ユーザー、カテゴリー、 各種設定などを復旧できる可能性は十分にあります。

一方、画像、テーマ、プラグイン、 独自に編集したPHPやCSSなどは、 データベースだけでは復元できません。

サーバー会社のバックアップ、制作会社の保管データ、 ローカル環境、CDN、クラウドストレージなどを確認する必要があります。

復旧の基本手順

  1. 残っているデータベースをバックアップする
  2. 新しいサーバーと検証環境を準備する
  3. WordPress本体を設置する
  4. データベースをインポートする
  5. wp-config.phpを設定する
  6. URLとパーマリンクを調整する
  7. テーマ、プラグイン、画像を可能な範囲で戻す
  8. 動作確認後にセキュリティ対策を実施する

特にECサイトや会員サイトでは、 個人情報、注文情報、会員情報などを扱うため、 作業前にデータを保全し、必要に応じて専門業者へ相談してください。

WORDPRESS RECOVERY SUPPORT

WordPressの復旧でお困りですか?

データベースは残っているがサイトが表示できない、 画像やテーマを可能な限り復旧したいなど、 WordPressのトラブルについてご相談いただけます。

復旧について相談する

本記事は一般的なWordPress環境を想定した技術情報です。 実際の作業前には必ずデータベースとファイルのバックアップを取得し、 ご自身の責任で作業してください。


AILPENGINE。自動進化型AI-LP。公開後も、成果に合わせて進化する! 行動計測、分析、構成改善、成果最大化。自前計測、CTA位置最適化、レポート可視化。LP改善を相談する(相談無料)。

日本ドラフトのAIチャットボットで問い合わせ対応を効率化・自動化!24時間365日対応、簡単設定、マルチプラットフォーム対応で人件費・工数を削減。今すぐ無料で相談する

※当社は、当サイトに掲載する情報について、正確性・完全性・有用性その他一切の事項を保証するものではありません。
また、当サイトの情報をご利用いただいたことにより生じた損害、ならびに当サイトからリンクまたはバナー等を通じて移動した外部サイトにおいて提供される情報・サービス等により生じた損害について、当社は一切の責任を負いかねます。