1

私は奇妙な状況に直面しています。「mysql」接続を使用してMySqlデータベースに接続しようとすると、機能します。

mysql connection string -> mysql_connect($HOST, $USER, $PASSWORD, $DB); 

しかし、「mysqli」または「PDO」のいずれかを使用すると、接続がすぐに失敗します

mysqli connection string -> mysqli_connect($HOST, $USER, $PASSWORD, $DB); 
PDO Connection string -> new PDO("mysql:host=$HOST;dbname=$DB", $USER, $PASSWORD);

それがスローする特定のエラーは、

SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061

皆さん、私を助けてくれませんか? ありがとう。

4

1 に答える 1

5

私は時々これに出くわしました。ほとんどの場合、MySQL サーバーは 1 つのパスでソケット ファイルを使用するように構成されていますが、php.inimysqli または pdo_mysql のセクションでは別のパスでソケット ファイルを探しています。

MacPorts から PHP と MySQL の両方をインストールしたにもかかわらず、これが発生します。これら 2 つのポートの構成を一致させたと思われるでしょう。

を編集php.iniしてソケット ファイルの正しい場所を設定するか、mysqli または pdo_mysql との接続を開始するときにソケットを指定します。

pdo = new PDO("mysql:dbname=test;unix_socket=/opt/local/var/run/mysql5/mysqld.sock", 
  "username", "password")

$mysqli = new mysqli("localhost", "username", "password", "test",
  ini_get("mysqli.default_port"), "/opt/local/var/run/mysql5/mysqld.sock")

私が書いた記事Error2003-CantConnectToMySQLServerも参照してください。

于 2010-01-08T01:12:10.770 に答える