• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLへのDB::connectで、failedとなる)

MySQLへのDB::connectでfailedとなる

このQ&Aのポイント
  • MySQLにチャレンジしようとしていますが、DB::connectでfailedとなってしまいます。
  • MySQL-5.0.45をインストールし、MySQL AdministratorツールからサンプルDBが見えましたが、PHP-5.2.4からPEAR::DBを使ってconnectしようとするとDB Error connect failed-24となってしまいます。
  • データベースサーバが起動していない、対象のaaaデータベースが存在しない、ユーザ名/パスワードが存在しない、権限がないなどを確認しているつもりですが、うまくいきません。

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

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

OSはなんでしょうか? Linux系でしたらpsコマンドを用いて本当にmysqlが起動しているか確認するとよろしいと思います。 Windows系でしたらタスクマネージャからプロセスを確認するとよろしいです。 起動済みでしたら本当にそのプロセスが生きているか確認しましょう。 mysql -u USER -PPASSWORD これでログインできれば正常でしょう。 // 入れない場合はselinuxがらみのpermissionか // my.cnfの設定忘れのような気がします。 // 私もよくミスりますorz ケアレスミスとしては ・大文字小文字 ・ひきすうの順番が違う ・php.iniの設定ミス くらいですかね。

toco_eno
質問者

補足

回答ありがとうございます。 OSは、Windows2000です。 mysqlコマンドは、正常に返ってきて、テーブル内容もselectできました。 php.iniの設定については、mysql関連は extension=php_mysqli.dll だけ、設定してます。他に設定があるのでしょうか。 DB::connectのパラメタについては、 $dsn=array( "phptype"=>"mysqli", "username"=>"root", "password"=>"root", "hostspec"=>"localhost", "database"=>"pear"); $option=array( "autofree"=> TRUE, "debug"=>3, "portability"=> DB_PORTABILITY_ALL); $db=DB::connect($dsn,$option); としてます。 どこが違うのでしょうか。

その他の回答 (2)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

my.cnfはmysqlコマンドが起動しているならば設定が済んでいますよ。 basedirの項目をインストールしたディレクトリに指定しないとそもそも起動しないのです。 で、原因ですが10061のエラーは「mysqlサーバが起動していません」とのこと。 windowsでしたらサービスから起動するのが一般的と思います。 コンパネから[管理]-[サービス]を見てMysqlが自動で起動しているか確認してみてください。 そもそもmysqlがない場合は mysqld --install これで追加されるはずです。 詳細はurl参照してください。

参考URL:
http://dev.mysql.com/doc/refman/5.1/ja/windows-start-service.html
toco_eno
質問者

補足

> 10061のエラーは「mysqlサーバが起動していません」..Mysqlが自動で起動しているか確認してみてください。 [サービス]からMySQLの状態を見ると、自動起動になっていて、「開始」となっています。=>起動されているとみていいですか。 再度、PHPで、CONNECTを実行しましたが、エラーは同じでした。 接続失敗:DB Error: connect failed-24 [nativecode=Can't connect to MySQL server on 'localhost' (10061)] ** mysqli(mysqli)://pearusr:PASSWORD@localhost/pear 他に、どこを確認すればいいでしょうか。

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

mysqlが正常であればあとはdsnの異常か、そもそもpearに異常があるか、しかなさそうですね。 // my.cnfなどの設定はmysqlがwindowsと違うパーティションにインストールされているときなどに // 設定が必要になります。 $db->getMessage()や$db->getDebugInfo()は何を返すのでしょう。

toco_eno
質問者

補足

回答ありがとうございます。 (1)インストール場所   db(\mysqldatafiles)をe:\に設定してます。   my.cnf とは、どこにあって、どう確認すればいいでしょうか。 (2)エラー表示内容 getMessage() = DB Error: connect failed getCode() = -24 getDebuginfo()= [nativecode=Can't connect to MySQL server on 'localhost' (10061)] ** mysqli(mysqli)://root:PASSWORD@localhost/pear 基本的なことが、間違っているのでしょうが、初心者でよくわかりません。 よろしくお願いします。

関連するQ&A