バックアップは日頃から心がけるべきだが、MySqlのデータをおろそかにしておいたので痛い目にあってしまった。tarで作成しておいたバックアップからWebデータは問題なく復旧できたが、wordpressのデータは、MySqlの.frm .idbがあるのみ。
実際に復旧できないとつらいのは、投稿記事のテキスト部分。サーバーも再構築したことだし、ブログサイトも一新する覚悟であきらめ半分で、記憶をたどりこつこつやるしかないと思った。いくつかのコンテンツはブラウザでページ保存しているのでそれも利用できそうだ。
.frm .idbがあるのだから何とかなるはずと思い、力技で単純にコピーしたがそう簡単ではなかった。phpMyAdminから該当のデータベースを見るとテーブルの中身が見られない。
いろいろ調べると、結論的には
TABLESPACEというものが関係していて、結合順序の項目に「使用中」の表示が出ている模様。
今回の環境ではwordpressデータベースには20のテーブルがあり、記事のテキストは
wp_postsテーブルにあるらしい。なんとか復活させたい。その思いは叶ったのである。
次のSQLを実行すればよい。
ALTER TABLE 該当するテーブル名 IMPORT TABLESPACE;
見事復活!
ここまでできればあとはどうとでもなる。
実際の記事内容があるフィールドはpost_contentであった。
この部分だけをエクスポートし、余分なタグがあったので、面倒なのでhtml形式で保存したら
ブラウザでテキストだけが表示された。
ただし、今回の操作を本番環境で行うのは危険であるので、テスト環境に該当データをコピーして行ったことを付け加えておく。
※コメント投稿者のブログIDはブログ作成者のみに通知されます