pools.jp | MediaWikiのインストール後にエラー


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を選んだら予想通り今度はきちんと動いた。

おまけ:インストール時のスクリーンショットをアップしておきます。
mediawiki


Posted at Sunday, February 18th, 2007comments (3) | trackback | category: Internet, php, technology

Read More

Related Reading:

3 Responses to “MediaWikiのインストール後にエラー



Leave a Reply

Note: Any comments are permitted only because the site owner is letting you post, and any comments will be removed for any reason at the absolute discretion of the site owner.