2007年12月19日水曜日

講座のWiki復活

私が管理している講座内Wikiですが、先日FC5をアップデート掛けると壊れちゃいました。
トップページにアクセスすると、DBへの接続エラーが。
てっきり、更新の際かマシンの電源を落とした際にDBがふっとんだと思っていたんですよ。けどMySQLのログには何も書かれてない。でもDBへの接続エラーが出る。
で、忙しかったのと閲覧頻度が低かったので今まで放置してたんですが、今日レジュメも書き上がったと言うことで原因を調べ、だめなら再構築することに。
とりあえずDBのデータがほんとに吹っ飛んでいるのか、データそのものの保存場所を確認してみることに。
すると、/var/lib/mysql以下にちゃんとDBデータはあるじゃありませんか。データそのものは残ってると言うことが発覚。
続いて、mysqlにログインしてデータベースに接続できるかチェック。
これもクリア。
つまり、DBは吹っ飛んでなどいないかもしれないということです。
んじゃどこで不整合が起きたのか。
とりあえずトップページのエラーメッセージを元にぐぐるぐぐる。一応数件ヒット。もちろん、全部異国の言葉でしたよ(ぉ
で、たどり着いたサイトがWikipediaのページ。Wikipediaのエンジンと同じエンジンを使っておりましたので、トラブル集みたいなページにたどり着いたというわけです。
で、やたらいっぱいある事例をちまちまとチェックしていきまして、ようやくそれらしい事例を発見。
どうもWikiのエンジンをFC5のアップデートの際に更新したらしく、そのせいでDBに不整合が起きているのだという話。
で、エンジンとDBの整合を取るには、mediawikiを展開したディレクトリ内にあるmaintenance/update.php(ちょっとディレクトリ名とファイル名自信ない^^;)を実行すればよいとのこと。phpコマンドに渡してやれと言うことらしいです。
で、実際にやってみたところ、それやるには同じくmediawikiの展開先にあるApplication.php(これもなんか忘れてる気がする・・・)。のファイルを編集し、wikiのDBユーザとそのパスワードを書いておく必要があるらしい。それを書いてなかったので何も実行されずに涙目><
で、それをささっと書きまして、再度実行。そしたらなんとwikiのユーザがcreate権限持ってないから失敗したんだぜというメッセージが。
なんでじゃねん、データベース作ったときに全権限grantせんかったか!?とか思いつつ、仕方ないので再度wikiのDBに対してwikiのユーザに全権限を与えることに。
そうしてようやくアップデート完了。無事Wikiが復活しましたとさ。
なぜかロゴのPNGデータが壊れてましたが、差し替えることで解決。新規に項目を追加することも出来てましたし、過去のデータも全部生きてました。ログインも可能だったということで、おそらくちゃんと更新できたものと思われます。
いやーしかし、まさかFedoraの更新でWikiのエンジンを手動で更新する羽目になるとは予想外。ま、解決できたからいいんだけれど。
さらに、もうFC5はレガシーでもサポート対象外になっちゃったから更新はもう無いですよと。つーわけで、私が去った後は余計なことしなければ壊れてしまうこともないでしょう。
結構時間は掛かりましたが、再構築しなくて済んだのは僥倖。せっかく復活させたんだし、今のうちに色々と項目を追加しておきましょうかね。
さ、明日ちょっと付け足そうかしらん?