• ベストアンサー

PHPとMySQLの連携について教えてください

PHPからMySQLを使いたくて下記の環境を構築しました。 それぞれは正常に動作していますが、phpとmysqlの連携ができません。 PHP Version 4.3.10 MySQL Version 4.1.15 Apache 2.0.52 WindowsXP Home Edition ホスト名 localhost ユーザー名 root パスワード adminで firsttestというDBにテーブルを作成しました(DOSプロンプトから)。 そして次のコードを記述して実行すると下記のエラーが表示させます。 $conn=mysql_connect("localhost","root","admin"); // 5行目 mysql_select_db("firsttest",$conn); // 6行目 $res=mysql_query("show tables",$conn); // 7行目 --------- エラー画面----------- Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\Program Files\Apache Group\Apache2\htdocs\sweetsystem\dbtest.php on line 5 Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\Apache Group\Apache2\htdocs\sweetsystem\dbtest.php on line 6 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\Apache Group\Apache2\htdocs\sweetsystem\dbtest.php on line 7 ------------------------------ MySQLを利用しないPHPプログラムは正常に動作しています。 またMySQLもDOSプロンプトからはテーブル等正常に作成できます。 初心者で先に進めずとても困っています。 解決策がありましたら教えてください。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

MySQL4.1からパスワードの管理方式が変わりました。 infotownさんがインストールしたPHP 4.3.10に含まれるモジュールでは この新しいパスワード方式には対応できない為エラーになっているようです。 PHPを新しい4.4.1(もしくは4.3.11)に置き換えるか、モジュールだけ最新の物にリコンパイルするか... おすすめできませんがSQLを実行し旧暗号化方式に対応させることもできます。 おすすめできませんが起動オプション --old-passwords をつけて起動するか my.cnfファイルの[mysqld]ファンクションにold-passwordsを記述することで この問題を回避できます。 ちなみに4.3.10には深刻な脆弱性がありますのでバージョンアップをおすすめします。

infotown
質問者

お礼

早速の回答ありがとうございます。 ご指摘のとおりバージョンアップします。 ありがとうございました。

その他の回答 (1)

  • rheda
  • ベストアンサー率30% (3/10)
回答No.2

PHP,MySQL,Apacheを使っての環境構築 は、結構大変だと思います。 本に書いてあることが、古かったり。 PHP+MySQL程度なら、思い切って、 レンタルサーバー上で、直接、実行 してみるのも手かと思います。 殆どのレンタルサーバーで、月何百円 で、PHP+MySQLがつかえるはずです。 環境構築で止まるのは、もったいないです。 うごいたら、同様のバージョンで、 自分のPC上に環境を作ったらどうでしょうか。

infotown
質問者

お礼

ご回答ありがとうございます。 確かに環境構築でとまるのはつらいです。 参考にさせていただきます。