phpMyAdmin を使ったバックアップデータのインポート
最初に、ぼくはさくらインターネットで Movable Type を MySQL をデータベースにしてダイナミックパブリッシングで運用している。二日ほど前に Movable Type 4.0 に一端バージョンアップした。バージョンアップ自体は上手くいったと思う。しかしぼくがスパムコメント撃退の為に使用している MT-Keystrokes というプラグインが、ぼくの環境では動作しなかった(後から考えたらぼくの不備もあったかも)。
おかげでさっそくコメントスパムが来るわ来るわ。ほとんどが Movable Type 側で弾いてくれてはいるのだが、中にはスルーしてくる物もそこそこある。たぶん設定でスパムに認識するような機能もあるのだろうが、たまらなくなって旧バージョンの 3.3.4 に戻すことにした。そこからがこの苦悩の始まりだった。
4.0 にバージョンアップする時に、データベースの MySQL のデータのバックアップと旧バージョンのファイルもごっそりバックアップした。いつもは取るのだが、今回は Movable Type からのデータの書出しはやらなかった。MySQL のデータのバックアップさえ取っておけばリストアも大丈夫だろうと高をくくっていたのだ。やったこともないのに・・・。
それで導入した 4.0 を再度削除して、バックアップを取っておいた 3.3.4 のファイル類をアップロードした。アップロードし終わってから、一度 4.0 に上げたら MySQL のテーブルも変わってしまうじゃないかと気付いた。実際、再度管理画面にアクセスしても昔の状態にはならなかった。
でも大丈夫。MySQL のデータのバックアップもあるもんね。これに入れ替えてやれば昔の状態に戻る筈。それで phpMyAdmin にアクセスして MySQL のテーブルを全部削除し、バックアップファイルを読込むボタンをクリックしたのだ。ところが読込まない。読込もうとしているようなのだが読込まない。そしてしばらくしてエラー表示。一応、バックアップデータ自体は 5MB そこそこと制限の 8MB を下回っているのに何度試みても駄目。
これを読込んでくれなきゃ、いくらバックアップがあっても元の状態に戻すのは結構大変な作業。ましてやMovable Type からのデータの書き出しをやっていれば問題ないかもしれないが、前述したように今回はやらなかったので、頂いたコメントなんかの復活はひょっとしたら無理かもしれない。
さあそこからが情報を探して検索の旅。あるいはブラウザを Firefox に変えてみたりファイルを入れ替えてみたりと試行錯誤。検索の情報ではシェルスクリプトで MySQL のデータをアップする方法とかがあったけれど、さくらインターネットの MySQL のデータって別サーバーのはず。ブラウザに出ているアドレスがそのサーバのアドレスなんだろうかとか、ちょっとぼくの知識、技量では判んないなあという感じ。
もはやなかば諦めの境地。駄目元でシェルスクリプトで挑戦するかと再度検索をしてみたら、【MovableType備忘録】の【MovableTypeのデータベースごとバックアップする】というエントリで MySQL データのリストアの件が解説されているではないか。
それによるとやはりバックアップデータが大き過ぎるとエラーが出るようだ。じゃあどうするか?バックアップデータを小分けにして、指定のところにペーストしてサーバーに上げるらしい。 phpMyAdmin にアクセスして 下記画像の赤丸で囲んだ【データベース】をクリック。
もう一度データベースの名前が一覧表示されるので目的のデータベースを選択。すると下記画像のような画面になるので赤丸で囲んだ【SQL】をクリック。
そうすると下記画像のような画面になるが、この赤枠で囲んだところにバックアップしたデータを小分けにしてペーストし実行ボタンを押す。 そうすると MySQL にテーブルデータとしてインストールできるということらしい。
そうだったのか。ちなみにバックアップしたデータは【テーブルの構造】と【テーブルのダンプデータ】というようにペアになってバックアップされているらしい。確かにテキストエディタで中身を見てみるとその通り。そこでそのペアごとにコピーして上記エリアにペーストする。
その前に注意点としてリストアするテーブルは削除しておくこと。同じ名前のテーブルがあったらエラーが出てアップできない。
やってみたらオーケーだった。小分けしてもエントリなんてそこそこサイズがあるので何度かエラーがでたりしたけど、なんとか無事に全テーブルをリストアすることができた。
ぼくは試さなかったのだが、これってバックアップしたデータを小分けにしてテキストファイルに変換した上でファイルの読込みをしても取込んでくれるのかもしれない。
そんな訳で無事データベースのリストアに成功したのだが、これからデータも増えてきた場合、いくら小分けにしても結構大変なんじゃないかなあなんてことも思った。これはやはり安全の為にも Movable Type からのデータの書き出しもやっておいた方が良いかもしれない。そうするとテンプレートとかデータの構造とかは phpMyAdmin 経由でリストアして、仮に大き過ぎて駄目かもしれないエントリなんかは Movable Type のデータの読込みで対応できたりするんじゃないのだろうか?











