- PR -

phpMyAdminにログインできない

1
投稿者投稿内容
kotaroh
会議室デビュー日: 2004/09/25
投稿数: 11
投稿日時: 2004-10-31 01:00
こちらで聞くべき内容ではなさそうな気もしますが、ほかに思い当たる場所がないので質問させてください。

先日、はじめて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
会議室デビュー日: 2004/09/25
投稿数: 11
投稿日時: 2004-10-31 01:39
単純な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
会議室デビュー日: 2004/09/25
投稿数: 11
投稿日時: 2004-10-31 10:22
MySQLを、4.0.22にインストールし直したところ、無事解決いたしました。
バージョン番号が高ければいいということではないでしょうけど、後学のために4.1系で運用されてる方はどう設定しているのか教えてください。
SABM
会議室デビュー日: 2004/11/03
投稿数: 3
投稿日時: 2004-11-03 04:18
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をシステムディレクトリに入れておきます。
これで、動くと思いますよ。
未記入
会議室デビュー日: 2005/02/21
投稿数: 1
投稿日時: 2005-02-21 09:48
この件で検索するとこのスレッドが上位にくるようなので、参考までに。

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

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

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

old_passwords

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

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

スキルアップ/キャリアアップ(JOB@IT)