前回の記事では、WordPressが真っ白になった時の対処方法について紹介しましたが、紹介した手順で上手く復元できなかった場合や、バックアップを取得していなかった場合などの最終手段として、WordPressを一旦初期化し手動で記事データを復元する方法があります。
今回はデータベースが破損した場合において、前回紹介した修復手順で上手く行かなかった場合、今まで投稿してきた記事データを手動で復元する方法を解説します。
MySQLデータを取得する
データベースが破損し、修復を試みても上手く行かない場合や、手元にバックアップファイルが無い場合、現行のデータベースファイルを「phpMyAdmin」で取得します。
まず、「phpMyAdmin」にログインし、該当するデータベースを選択後、「エクスポート」タブを選択します。
「ファイルに保存する」の項目にチェックが入っていることを確認し、「zip形式」のラジオボタンを選択します。その後、画面右下の「実行する」ボタンをクリックします。
データベースをバックアップしたファイルがダウンロードされます。ダウンロードが完了後、zipファイルを解凍します。
データベースを初期化する
続いて、データベースを初期化します。引き続き「phpMyAdmin」にて該当するデータベースを表示します。
各テーブル一覧が表示されていますので、全てのチェックボックスにチェックを入れ、データベース一覧下にあるリストボックスより、チェックしたものを「削除」を選択します。
最後に、画面右下にある「実行する」ボタンをクリックし、データベーステーブルを完全に削除します。
WordPressを再インストールする
最後に、サーバーにWordPressを再インストールします。再インストールを行うにあたり、既存のWordPressのデータをローカルにバックアップします。
WordPressデータをバックアップしたいローカルの任意の場所にバックアップ用のフォルダを作成し、このフォルダに「wp」直下に格納されているファイルをすべてダウンロードします。ダウンロードする際は容量が大きくなり、途中でダウンロードエラーになる場合がありますので、その際はディレクトリ毎にダウンロードします。
バックアップが完了後、サーバーに格納しているWordPressデータを全て削除します。
レンタルサーバーのコントロールパネルにログインして、WordPressをインストールします。MySQLの設定は、先程テーブルの削除を行ったデータベースを選択します。WordPressのインストール方法については、「レンタルサーバーにWordPressを自動インストールする方法を徹底解説」をご覧ください。
WordPressのインストールが完了後、今まで使用していたWordPressの「テーマ」、「プラグイン」、「画像データ」を復元します。再度、「FTPソフト」よりサーバーに接続すると、「wp」フォルダに新たなWordPressのファイルが作られていることを確認し、「wp」→「wp-content」に、バックアップしておいた「plugins」と「themes」、「uploads」の3つのフォルダをアップロードします。詳しい手順については「WordPressのテーマ・プラグイン・画像データをバックアップする方法を徹底解説」に記載しておりますので合わせてご覧ください。
各ファイルのアップロードが完了後、WordPressの管理画面にログインし、テーマとプラグインを有効化します。
WordPressの記事データを復元する
最後にWordPressの記事データを復元します。「データベースファイルを取得する」で取得したデータベースファイル、拡張子「sql」ファイルを、「サクラエディタ」もしくは「秀丸」などのテキストエディタで開きます。
記事データの記載場所を確認しておきます。場所やテーブル名は人によって異なりますが、記事データを格納しているテーブルについては、「posts」と記載されているケースが多いため、Ctrl+Fで「posts」と入力して検索して見て下さい。
記事については、WordPress管理画面の「新規投稿」画面より、sqlファイルに記載されている投稿内容をコピーして貼り付けます。各記事には投稿日の記載もありますので、「投稿の編集」より、sqlファイルに記載された日付を指定して投稿します。また、コメントなどもある場合は、コメントが記載されている部分を探して該当する記事に追加します。
なお、再度「phpMyAdmin」でインポートも可能ですが、データベースが破損し修復ができなかった場合、原因が不明であるため、面倒ではありますが、一つ一つ手動で修復していくのが確実です。
バックアップを取得していない場合、今回は各記事データを手動で復元できるだけでもデータが消えずに済んでいますが、無駄な作業時間が発生してしまいます。また、サーバー障害が起きた場合など外部的な要因でデータが消失することも十分に考えられますので、必ずこまめにバックアップを取得することが重要です。