QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

phpMyAdminにログインできない

こちらで聞くべき内容ではなさそうな気もしますが、ほかに思い当たる場所がないので質問させてください。

先日、はじめてMySQL4.1をWindows2000proに導入してコマンドプロンプトからの動作確認を済ませました。
そして、phpMyAdmin2.6.0-pl2をApacheのhtdocsに置き、config.inc.phpファイルの
$cfg['servers'][$i]['auth_type']
を、「http」に設定し、phpMyAdminのページにアクセスした際に出てくる認証ダイアログに、ユーザー名rootとMySQLのrootユーザーのパスワードを入力しても、

「ユーザー名またはパスワードが正しくありません。アクセスは拒否されました。」

となってしまいます(この方法はある本を参照しました)。
また、auth_typeをconfigにして、

$cfg['Servers'][$i]['user'] ='root';
$cfg['Servers'][$i]['password'] ='rootのパスワード'

にしてhttp://localhost/phpmyadmin/にアクセスしても、

"#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client"

というMySQLのエラーがでてしまいます。本やWebなどで検索しているのですが、このような事例がなく
原因がわかりません。何か重要な設定を忘れてるのでしょうか?
なお、Apache2.0.49、php4.3.5でどちらも正常に動作しています。

もし、場違いな質問であれば、適切な場所に誘導していただけると助かるのですが。

質問者:kotaroh

回答

この件で検索するとこのスレッドが上位にくるようなので、参考までに。

GRANT権限のユーザで、MySQLユーザにたいして、

mysql> SET PASSWORD FOR (user name)@(host name) = OLD_PASSWORD(password);

とやるとうまくいく場合もあります。
それでダメなら、my.ini(ゐんどうずならシステムディレクトリかMySQLディレクトリ
にあるらしい。僕の機械ではlocateできませんでした)
というファイルに、

old_passwords

という一行を加えてサーバをリスタートするといいようです。
ようするに、どちらも、16ビット時代に使われていた、暗号化されていない
パスワードを使うと言う指令です。
MySQLのチームはあんまり暗号の理論に詳しくなかったということですかね。

下方/上方互換性の維持というのは難しい問題ですね。

投稿者:未記入

編集 履歴 (0)

単純なMySQLに接続するだけのPHPスクリプトを作成して実行したところ、

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\Program Files\Apache Group\Apache2\htdocs\mysql_test.php on line 5

というエラーが返ってきました。php側で何か設定が必要でしょうか?

投稿者:kotaroh

編集 履歴 (0)

MySQLを、4.0.22にインストールし直したところ、無事解決いたしました。
バージョン番号が高ければいいということではないでしょうけど、後学のために4.1系で運用されてる方はどう設定しているのか教えてください。

投稿者:kotaroh

編集 履歴 (0)

MySQL4.1以降に接続する場合にはconfig.inc.phpファイルの設定で

$cfg['Servers'][$i]['extension'] = 'mysqli';

とすると接続できるようになります。
(4.0.xからアップグレードして、権限テーブルのアップグレードを行っていなければ接続できるようですが・・・)

phpMyAdminの設定は、以上でOKだと思うのですが、php.iniでmysqliモジュールを有効にしてあげないと動かないので、
php.iniの拡張モジュールの設定のところで、

extension=php_mysqli.dll

を追加して、libmysqli.dllをシステムディレクトリに入れておきます。
これで、動くと思いますよ。

投稿者:SABM

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。