- - PR -
PHP+MySQL+IISの組合せでMySQL連携がうまく動作していない
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-19 23:27
まずインストールした環境、バージョンを記述します。
IIS(5.0 WindowsXP) PHP 4.4.5 ( Windows版) MySQL 4.1.22(Windows版) なお、PHPは今日始めて触っています。 【最終目標】 XOOPSをインストールしたい。 【行き詰っていること】 XOOPSのインストール画面でデータベースに接続できませんと出る。 このため、XOOPS以前にとりあえずPHPとMySQLの連携がうまく行っているのか 検証してみた。最終的にはXOOPSのインストールが目標だが、 恐らくその手前でつまづいているらしい。 【できていること】 1)MySQLはコマンドプロンプトベースでは、思うとおり反応してくれている MySQLに対して、コマンドプロンプトから >mysql -u root -ppassword xoopsarchive と打ってログインはできているし、 ユーザーも作成できている。 2)phpも以下のようなテストコードを作成して、動作することを確認した。 すなわち、IISに対してのPHPのISAPIフィルタリングもうまく行っている。
3)ところが、以下のデータベース接続サンプルテストを実行すると、 なんで?というエラーが出る。 エラーの具体的な内容は下記の通り。 この中で、ODBC'@'localhost なんてユーザーはどこにも指定はしていないのに、なぜこんな勝手なものが出るのかわからない。 確かにこんなユーザーは存在しないので、これで接続しようとしているなら エラーが発生することは理解できるが、ソースにもどこにもそんな ユーザーがいない。 どこかのiniなどに記述されているのでは?と思ったが、見つかりませんでした。 お知恵を拝借願います。 Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in c:\inetpub\wwwroot\phptestfile.php on line 17 Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\inetpub\wwwroot\phptestfile.php on line 18 Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in c:\inetpub\wwwroot\phptestfile.php on line 18 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\inetpub\wwwroot\phptestfile.php on line 26 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\phptestfile.php on line 28 Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\phptestfile.php on line 33 Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in c:\inetpub\wwwroot\phptestfile.php on line 34 上記のようなエラー。phpファイルは以下の通り。
| ||||||||
|
投稿日時: 2007-02-20 02:41
ODBC'@'localhostは、ユーザ・パスワード指定なしで接続しようとしたケース(anonymousの接続不許可時)ではなかったかと思います。このエラーの発生元はmysql_select_db()ですから前の行のmysql_connect()のエラーが解決されれば問題ないかと。 で、mysql_connect()は「Client does not support authentication protocol requested by server」ですから、このあたり↓ですかねぇ。 http://dev.mysql.com/doc/refman/4.1/ja/old-client.html phpinfoでmysqlのClient API versionはどうなっていますか?多分4.1未満のハズですから、「--old-passwords を指定して mysqld を開始する」あたりを試せばどうでしょうか? [ メッセージ編集済み 編集者: shimix 編集日時 2007-02-20 02:45 ] | ||||||||
|
投稿日時: 2007-02-20 23:29
確かに、インストール時にanonymousログオン不許可でインストールしました。 まだ、試せていませんが、どうせクリーンインストールしても問題ないので anonymousログオンとか、あるいは教えていただいたリンクの --old-passwords 問題だとかを試して再挑戦してみます。 教えていただいたリンクや old-passwordsを手がかりに 多分きちんと手順を踏めば解決できそうな情報が 盛り込まれているページにまでたどり着くことができました。 実際解決できるかは不明ですし、直感以上の何モノでも ありませんが、自分がold-passwords絡みで 引っかかっていることは間違いなさそうな気がします。 貴重なアドバイスありがとうございました。 |
1