[Mediawiki] phpMyAdminでバックアップを取る


大量のスパムアカウントの削除についてあれこれ悩んでいる際に、ふと「これバックアップさえ取ってあれば、スパム登録されまくる前の状態に復元すればよかっただけじゃないのか・・・?」と思い、絶望的な気分に。

設置した時から全くバックアップを取っていなかったのが今になって悔やまれる・・・。

今からでもいい、バックアップを取ろう!そしてあわよくばスパムに狙われる前のデータに戻してしまおう!と思ったので、バックアップ方法を探ってみた。

SSHが使えればMYSQLに付属しているというmysqldumpというツールを使うこともできるようなんだけど、残念ながら安いサーバーを使っているのでSSH接続ができず、サーバの管理画面に用意されているphpMyAdminを使うことに。

こちらのサイトで詳しく手順を書いて下さっていたので、参考にしたらすぐできました。
WikiCookRecipe日記 – バックアップのテスト

ただし、記事数は150程度しかないのに、ダウンロードした.sqlのファイルサイズはなんと圧巻の1.9GB。恐ろしい・・・テキストデータしかないのに何故こんなデカいサイズに?!

また、「記事を一部だけ選んで復元」はかなり難しいだろうなぁという考えから、csvやxml形式でもphpMyAdminでバックアップを取ってみました。
(150ぐらいの記事なら手動で再登録という苦行もやり遂げられるだろうという安易な考え)

・・・結果、どちらもやはり1GBを超えた。

あまりのデカさにExcelには「一部しか開けませんでしたー」と言われ、文字化けしまくりで全く読めないデータを見せつけられてしまった。
全幅の信頼を置くTeraPadに至っては、「開く」を実行してしばらくはなんとか開こうとしている気配があったものの、最終的には何事もなかったように何一つ開かないという事態に・・・。拒否られた・・・。

貧相なVista機で挑戦したのがダメだったのかもしれないので、もう一度違うWindows7機(Core i5だったはず)で開けるかどうかチャレンジしてみようと思う。
開けなかったら加工も参照もできないもんなぁ・・・

【EC-CUBE】アップデートをすっかり忘れていた件


現在EC-CUBEの2.12.0を使用していますが、これがおそらく2012年の5月の話。
そこからすーーーーっかりアップデートの有無の確認を忘れていまして。

慌てて公式サイトにアップデートファイルを探しに行ったら、現在なんともうVersion 2.13.1!!!Σ(゜Д゜)
しかもあるバージョンから一気に最新版にアップデートできるようなファイルは用意されていないようで、2.12.0→2.12.1→2.12.2→2.12.3→2.12.4→2.12.5→2.12.6→2.13.0→2.13.1と、8回分も順番にアップデートして行かねばならん模様・・・。うわぁえらいこっちゃ。

というわけで、また一からインストールし直すよりは・・・と、ちまちまと順番にアップデートして行くことに。めんどい。

2012/07/05の2.12.1正式版のリリース記事から、EC-CUBE2.12.0 ⇒2.12.1修正ファイルをダウンロード。

ダウンロードしたzipファイルを解凍するとちゃんとREADMEファイルがついていて一安心・・・と思ったら「update.txt内のSQLを実行します。」という冷や汗ものの一文が・・・
だって、「SQLを実行ってどうやってやんの?」ってレベルだもんなぁ(お恥ずかしい)

まずは解凍して出てきた修正ファイルを全てアップロードして、その後SQLについて検索してみたら。
SQLとは 【 Structured Query Language 】 – 意味/解説/説明/定義 : IT用語辞典
うん、言語ということはわかった・・・。

おそらくはサーバのコントロールパネルにある「phpMyAdmin」を使うんだろうなーと思って更に検索。
SQLを直接記述して実行する
こちらを参考にしました。

まずはphpMyAdminにログインして、EC-CUBEに使用しているデータベースを左メニューから選択。するとリストが表示されます。

その状態から右画面の上にある「SQL」タブをクリックすると、入力画面が出てくるので、修正ファイルの中の「update.txt」に記載されているSQLとやらを入力します。

うおっ、エラー出た・・・

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONSTRAINT dtb_recommend_products_pkey' at line 1

調べたところエラー1064はSQL構文そのもののエラーらしく、
EC-CUBE 開発コミュニティ – フォーラム「2.12.0→2.12.1アップデートでMySQLエラーがでます」
こちらで「update.txtに記載されているMySQL用の構文ではなく、postgresql用の構文を実行すればいける」と書かれていました。

この通りに、

ALTER TABLE dtb_recommend_products ADD PRIMARY KEY(product_id, recommend_product_id);

を実行してみたところ、無事に成功しました・・・ふぅ。怖かった・・・(笑)

2.12.1から2.12.2へのアップデートはファイルのアップロードのみでSQLはなしでした!
このまますんなり続けていけるといいんですがね…