2009/06/08

MediaWikiの復旧

内部で利用している、MediaWikiが文字化けして使いものにならないと。。。。
MySQLの文字コードの設定がおかしくなっているようで、登録済みのコンテンツの抽出を行い、最新のバージョンにアップデートを試みる事にした。
powerpcにUbuntuをインストールするのは割愛します。結構らくちんでした。。。。

元サーバ:
Linux 2.4.21-37.0.1.EL
mysqld 4.1.21
PHP 4.3.2
MediaWiki 1.5.8

移行先:
Linux 2.6.28-6-powerpc Ubuntu
mysqld 5.0.75
PHP 5.2.6-3
MediaWiki 1.14.0

  1. 元サーバのMySQの文字コードを確認してみると、latin1になっている。DBの内容を確認してみると、pageテーブルは文字化けしているが、それ以外はutf8で確認する事が可能。文字コードを指定してmysqldumpを実行。
    $ mysqldump -u user -p --default-character-set=utf8 wiki > wiki_utf8.dmp
  2. 文字化けしているpageテーブルをselect分でcsv出力
    mysql> select * from page into outfile "/tmptest.csv" fields terminated by ',' optionally enclosed by '"';
  3. 2つのファイルをscpで移行先にコピーする。
  4. ダンプしたDBをインポートする。
    $ mysql -u user -p wiki < /home/xxx/wiki_utf8.dmp
    このまま、MySQLの処理を続けるとエラーになる。。。。。。ま、エラーになるから、私が作業してるんだけどね(ノ◇≦。) ビェーン!!
  5. 2で出力した文字化けしている、pageテーブルのcsvをインポートする。
    念のためにテーブルを削除
    mysql> truncate table page;
    インポート処理。(localが無いとエラーになったはず。)
    mysql> load data local infile '/home/xxx/test.csv' into table page fields terminated by ',' enclosed by'"';
  6. MediaWikiのメンテナンスツールでupdateとindexの再構築を実施する。
    $ php /var/www/mediawiki-1.14.0/maintenance/update.php
    $ php /var/www/mediawiki-1.14.0/maintenance/rebuildall.php
    ここでは、エラーが出ない事を神様に願うしかない。。。。。
後は、MediaWikiの特別ページから手作業で、せっせと修正を行っていくだけ。。。。。
画像ファイルへのリンクも切れているので手作業になるけど、文字情報として残っているので、何とか修正は出来ると思う。

画像ファイルは、picasaでも使って、アルバム形式で提供してあげれば、修正しやすいかもしれないね〜