3

PDO で mysql DB に接続しようとしましたが、うまくいきません。私は書きます:

 $db = new PDO('mysql:dbname=test;host=localhost','user','pass');

エラーを返します:

 Warning: PDO::__construct() [pdo.--construct]: [2002] No connection could be made because
 the target machine actively refused it.

教えてください、PDO が望んでいることは何ですか?

phpバージョン: 5.3.9

ホスト: ローカル コンピューター (サーバー - 「usbwebserver」)

4

2 に答える 2

4

ポートの問題です。3306の代わりにUSBwebsevermysql ポート3307を使用するため、$db = new PDO('mysql:dbname=test;host=localhost:3307','user','pass');

于 2013-01-03T09:47:17.187 に答える
0

説明:

現在接続が存在せず、接続情報を指定せずに mysql_query が実行された場合、mysql_error は次を返します。

本当じゃない。

これは非常に欺瞞的です。 • 「ターゲット マシン」はデータベース サーバーを示します。• 「積極的に拒否された」とは、サーバーがリクエストを受け取り、それを拒否したことを意味します。

これにより、無効な資格情報が提供されたか、指定されたアカウントが期待どおりに構成されていない (Host=) と思われます。

エラー メッセージは、データベース接続 (または接続情報) が存在しないという事実を反映するように変更する必要があります。

(関数は渡された変数しか認識しないため、関数と組み合わせて PDO を操作する場合、これは特に厄介です)

データソース: https://bugs.php.net/bug.php?id=60315

ウェブサイトとデータベースはどちらもローカルですか?

于 2012-07-26T11:07:28.710 に答える