我正在尝试使用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)有什么问题吗?
[求助]好的,这很简单(但也很难注意到......)语法错误,它应该是=
而不是:
port
部分dsn
{1}}。
答案 0 :(得分: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";
答案 1 :(得分:1)
如果您尝试连接到其他服务器上的数据库请确保您的Sql服务器通过托管代码的位置的IP地址为您提供对案例3307中特定端口的访问权限。 如果两台服务器相同,请尝试使用localhost或127.0.0.1