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のプラグインでバックアップのツールもあるので、活用しましょう。
以上です。参考になれば嬉しいです。