6

我正在尝试使用 PDO 连接到远程 MySQL 数据库,但它失败并出现错误:

Connection failed: SQLSTATE[28000] [1045] Access denied for user 'my_user'@'some.ip.address' (using password: YES)

这就是我尝试连接的方式:

$dsn = "mysql:host=sql.my_domain.nazwa.pl;dbname=my_db;port:3307";
$user = "my_user";
$password = "my_password";

try {
    $this->db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

它失败了。但是这样:

mysql_connect('sql.my_domain.nazwa.pl:3307', 'my_user', 'my_password');

工作正常。

任何人都知道 PDO、它的配置、我设置的参数或者这个特定的服务器 (nazwa.pl) 有什么问题吗?

[已解决] 好的,这很简单(但也很难注意到...)语法错误,它应该是a=而不是:.portdsn

4

2 回答 2

5

尝试更换:

$dsn = "mysql:host=sql.my_domain.nazwa.pl;dbname=my_db;port:3307";

$dsn = "mysql:host=sql.my_domain.nazwa.pl;dbname=my_db; port=3307";
于 2012-08-03T11:57:52.070 回答
1

如果您尝试连接到其他服务器上的数据库,请确保您的 Sql 服务器允许您从托管代码的位置的 IP 地址访问特定端口(在您的案例 3307 中)。如果两台服务器相同,请尝试使用 localhost 或 127.0.0.1

于 2012-08-03T12:44:38.250 回答