WordPressをデータベースのバックアップから手動で復旧・復元させる手順

WordPress

WordPressのサーバーが不正アクセスを受けてアクセスできなくなってしまい、ファイルのバックアップも間違って消してしまいました。
残っているのはデータベースのデータのみ。
この状態から記事やレイアウトなどは復旧できました。
同じ状態でお困りの方のために、そのWordPressのデータベースのバックアップからブログを復旧するまでの手順を書きます。

ちなみにこの方法では画像などは復元できません。
復元できるのは記事やコメントといった文字データ、レイアウト、設定のみなります。

さらのWordPressをインストールする

まずはWordPressを普通にサーバーにインストールします。
WordPress公式サイトからダウンロードしてサーバーにアップロードするか、レンタルサーバーごとの手順に従うなどして、最初からインストールしていきます。

データベースも新しく作って、新しいデータベースと連携させます。

もともと使っていたテーマをWordPressにインストールする

もともと使っていたブログテーマなどを覚えていたら、WordPressにインストールします。

テーマごとにデータベースのテーブルが追加されるので、テーマに関連した設定もデータベースから復旧することが出来ます。

データベースのバックアップからデータをインポートする

データベースのバックアップから、新しいブログのデータベースにデータをインポートしていきます。
インポートする方法はなんでも良いですが、以下のような方法があります。

  • phpMyAdminなどの管理画面を使い、バックアップのデータベースからSQLファイルをエクスポートし、新しいデータベースにデータをインポートする。
  • mysqldumpなどのコマンドを使ってバックアップのデータベースからSQLファイルを出力し、mysqlコマンドなどで新しいデータベースにデータを取り込む。

以下、テーブルごとに説明しますが、まとめてエクスポート、インポートしても問題ありません。

wp_optionsテーブルをインポートする

新しいテーブルの方にレコードが作られていたら、一度全て削除します。
一度削除しておかないと、復旧前には存在しなかったはずの余分なデータが残ってしまい、予期しない不具合が発生する可能性があります。

データを削除したら、バックアップのwp_optionsテーブルのデータを新しいテーブルに全てINSERTします。

データのINSERTが完了したら一度WordPressの管理画面にアクセスします。
WordPressのバージョンが復旧前のものより新しくなっていた場合、「データベースの更新が必要」といった内容の画面が表示されるので、更新ボタンを押して更新を完了させます。

wp_optionsを復旧することで、WordPressのブログの見た目が復活します。
テーマごとの設定もこのwp_optionsに含まれているためです。

wp_postテーブルをインポートする

新しいデータベースのwp_postテーブルのデータを一度削除して、バックアップからインポートします。

wp_postテーブルにはブログ記事のデータが保存されているので、ブログ記事が復活します。

タグ、カテゴリー関連テーブルのインポート

wp_termasテーブル、wp_term_relationshipsテーブル、wp_term_taxonomyテーブルの3つをインポートします。
このテーブルも新しいデータベースの中身は一度全てDeleteしてからインポートします。

上記のテーブルをインポートすることで、ブログのタグ、カテゴリー一覧が復旧します。

コメント、トラックバック、ピンバックのインポート

wp_commentsテーブル、wp_commentmetaテーブルの2つをインポートします。
このテーブルも新しいデータベースの中身は一度全てDeleteしてからインポートします。

コメントはブログによっては復旧の必要は無いので、必要な場合のみインポートします。

ブログテーマ、プラグインごとのテーブルをインポートする

ここまででWordPressの基本的なデータは復旧します。

他に後からインストールしていたブログテーマ、プラグインがあれば、それらの機能に対応したテーブルを調べてインポートしてデータを復旧します。

まとめ

以上でWordPressのデータはほぼ復旧できました。
手順を改めて整理すると、以下になります。

  • WordPressをインストールする。
  • WordPressのテーマをインストールする。
  • wp_optionsテーブルをインポートし、バージョンチェックしてデータベースの更新を行う。
  • wp_post、wp_termas、wp_term_relationships、wp_term_taxonomy、wp_comments、wp_commentmetaテーブルをインポートする。
  • テーマ、プラグインごとのデータがあれば対応するテーブルをインポートする。

画像などのデータは残念ながらデータベースには残っていないので、パソコン等に残っているデータを再度アップロードするか、諦めるしかありません。
普段からサーバーのバックアップを取っておく事が大事です。
WordPressのプラグインでバックアップのツールもあるので、活用しましょう。

以上です。参考になれば嬉しいです。

タイトルとURLをコピーしました