読者です 読者をやめる 読者になる 読者になる

Xoopsのインストールにおける注意点

Xoopsのインストール時に、指定しているパラメータが全て正しいにも関わらず、データベースの試行に失敗することがある。
私が遭遇したこの現象の原因は、MySQL 4.1以降で変更されたパスワードハッシュアルゴリズムにあった。
Xoopsのソースを解析した結果、mysql_connect関数に行き当たったので、それをキーワードにGoogle検索したところ、http://de3.php.net/manual/ja/function.mysql-connect.php に辿り着いた。
そのページに載っていたサンプルソースを実行すると「Client does not support authentication protocol requested by server」と言うエラーが発生したので、さらにGoogle検索したところ、http://dev.mysql.com/doc/refman/4.1/ja/old-client.html に原因が載っていた。
要約は「MySQL 4.1からパスワードハッシュアルゴリズムが新しくなったので、古いクライアントで接続したときにこのエラーが発生することがある」と言うことだ。
私は以下のようにユーザが旧パスワードを使用できるように設定する方法を採用した。

# mysql -p
mysql> USE mysql;
mysql> UPDATE user SET Password = OLD_PASSWORD('<pass>')
    -> WHERE Host = '<host>' AND User = '<user>';
mysql> FLUSH PRIVILEGES;

それにしても、何とか上位互換を保つことはできなかったのだろうか。