• ベストアンサー

PHPでのMySQL接続エラーについて

PHPを使用してMySQLサーバに接続しようと思うのですが、どうしても "Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\Server\Apache2.2\htdocs\htdocs\connect.php on line 2" と表示されて接続できません。いろいろ試してみたので、情報を列挙いたします。 動作環境 OS:WindowsXP Pro Apache2.2.8 PHP5.2.6 MySQL5.0 1.コマンドプロンプトからはMySQLに正常に入ることが可能です。 2.上記のエラーが出るPHPプログラムは以下の通りです。 "<?php %conn = mysql_connect("localhost", "root", "password"); ?> 3.phpMyAdminを使って接続しようとしても以下のエラーが出ます。 #2003 - サーバが応答しません" 4.セキュリティソフトを終了させて接続しても同様の症状でした。 5.phpinfo()関数は正常に動作し、mysqlやmysqliの情報も表示されます。 以上の内容ですが、よろしくお願いいたします。

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

  • ベストアンサー
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.2

phpinfo()でMySQLの情報は出るでしょうか?

oeilvert
質問者

お礼

お返事ありがとうございます。 phpinfo()でmysqlの情報はでます。 MySQL Support enabled Active Persistent Links 0 Active Links 0 Client API version 5.0.51a Directive Local Value Master Value mysql.allow_persistent On On mysql.connect_timeout 60 60 mysql.default_host no value no value mysql.default_password no value no value mysql.default_port no value no value mysql.default_socket no value no value mysql.default_user no value no value mysql.max_links Unlimited Unlimited mysql.max_persistent Unlimited Unlimited mysql.trace_mode Off Off

その他の回答 (9)

回答No.10

私も同様なエラーで3日間、四苦八苦しております。 解決したようであれば、お手数ですがお教えください。

oeilvert
質問者

お礼

MySQLをアンインストールして、インストール先のフォルダの削除して、インストールしなおしたら直りました。原因はわかりませんが、設定のファイルがアンインストールしても残ったままになっていたのかもしれません。

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.9

「telnet localhost 3306」とやっても応答はありませんか?

  • little-m
  • ベストアンサー率44% (45/102)
回答No.8

以下のサイトに似た事例がありました。 http://www.geocities.jp/nonoyamajp/C32nd/MySQLNotStart/MySQLNotStart.htm

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.7

php5のマニュアルでは、システム環境変数path にphpをインストールしたディレクトリーを追加する方法が推奨されています。 http://jp.php.net/manual/ja/faq.installation.php#faq.installation.addtopath

参考URL:
http://jp.php.net/manual/ja/faq.installation.php#faq.installation.addtopath
oeilvert
質問者

お礼

お返事ありがとうございます。 環境変数にPHPをインストールフォルダへパスを入れています。パスに間違いがないかも確認したのですが、きちんと入っています。

  • fa-ce
  • ベストアンサー率42% (9/21)
回答No.6

phpフォルダ内のlibmysql.dllをC:\WINDOWS\system32にコピーしましたか? Apache/logsフォルダ内のerror.logにヒントらしきエラーログが出ることが多いので見てみてください。

参考URL:
http://drunk.chips.jp/web/2006/07/php5_windows.html
oeilvert
質問者

お礼

お返事ありがとうございます。 libmysql.dllはWindowsフォルダやsystem32フォルダにコピーして試してみました。ですが、同じ状況のようです。

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.5

MySQLの動作はコマンドで確認したとのことですが、 ネットワーク経由の確認でしょうか? mysql -h localhost -u root -p で確認してみてください。

oeilvert
質問者

お礼

コマンドプロンプトで確認したのはネットワーク経由の確認ではありません。ちなみに、 mysql -u root -p ******** や mysql -h localhost -u root -p ******** でやってもコマンドプロンプトからはmysqlに入ることができました。

oeilvert
質問者

補足

先ほどphp.ini-distを使ってphp.iniを設定したり、php.iniのmysql設定を確認したのですが、貴方と全くおなじ設定でした。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.4

参考になるかどうか、私のphp.ini-distのMySQLに 関する部分です。 [MySQL] mysql.allow_persistent = On mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off 因みに mysql_close($conn); もセットで入れてみては どうでしょうか? 更に、XAMPPですと、インストール一発で全部動きます が、そんなヤワな方法は拒絶されますか?

oeilvert
質問者

お礼

お返事ありがとうございます。 自分のphp.iniはphp.ini-distではなくphp.ini-recommendedを使用しています。もしかするとphp.ini-distの方で動くかもしれないので試してみます! 追記 XAMPPはなるべく避けたいと思います。助言ありがとうございます。

oeilvert
質問者

補足

mysql_close($conn);を追加してもエラーは出るようです。 Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\Server\Apache2.2\htdocs\htdocs\connect.php on line 2 Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\Server\Apache2.2\htdocs\htdocs\connect.php on line 3

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

失礼、出るのですね・・・何でしょうかね。 もう少し考えて見ます。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

%connは$connの写しミスでしょうか?

oeilvert
質問者

お礼

すみません。%connと載せていましたが、"$conn"が正解です。