MediaWikiのインストール後にエラー
Wikiを導入しようと思い立ち、MediaWikiをインストールすることにした。
MediaWikiインストール&設定解説
を参考にしてインストール。うまくいったと思いきや以下のようなエラーが発生。
データベース・エラー
データベース検索の文法エラー。これは恐らくソフトウェアのバグを表しています。 最後に実行を試みた問い合わせ:(SQLクエリー非表示)
from within function “Article::pageData”. MySQL returned error “1267: Illegal mix of collations (utf8_bin,IMPLICIT) and (ujis_japanese_ci,COERCIBLE) for operation ‘=’ (localhost)”.
エラーの内容から接続する際の文字コードの問題らしい。 ソースコードを覗いてみると$WIKI_HOME/includes/database.phpにある以下のコードが効いていないことが原因でした。
global $wgDBmysql5;
if( $wgDBmysql5 ) {
// Tell the server we’re communicating with it in UTF-8.
// This may engage various charset conversions.
$this->query( ‘SET NAMES utf8′ );
}
$wgDBmysql5なるグローバル変数は、mediawikiのリソースのルートを$WIKI_HOME直下に移動したLocalSettings.phpで定義されていてこのフラグがfalseのため’SET NAMES utf8′が効いていなかったみたい。 LocalSettings.phpを修正して$wgDBmysql5にtrueを入れることで無事動くようになった。 どうもインストールする際に聞かれたデータベース接続オプションを間違ったらしい。Backwards-compatible UTF-8を選択すほうが安全らしいのだが、環境によってはExperimental MySQL 4.1/5.0 UTF-8にするべきなのだと思う。(というか選択の余地がないと思う)
気持ち悪いので再インストールして上記のようにExperimental MySQL 4.1/5.0 UTF-8を選んだら予想通り今度はきちんと動いた。
おまけ:インストール時のスクリーンショットをアップしておきます。
![]()
Posted at Sunday, February 18th, 2007comments (3) | trackback | category: Internet, php, technology



December 17th, 2007 16:16
同じケースなんで本当にありがとうございます。
一発で解決になりました。
December 19th, 2007 14:11
vanswさん、わざわざコメントありがとうございます!
お役に立ててよかったです。
April 14th, 2008 16:49
本当にありがとうございます。