Php 到外部MySQL数据库的PDO连接(来自AWS)-“;SQLSTATE[28000][1045]拒绝用户访问;

Php 到外部MySQL数据库的PDO连接(来自AWS)-“;SQLSTATE[28000][1045]拒绝用户访问;,php,mysql,amazon-web-services,pdo,Php,Mysql,Amazon Web Services,Pdo,设置如下:我有两台服务器,一台带有AWS,另一台为“外部”服务器。我希望AWS实例运行连接到外部MySQL的PHP脚本。我已经授予MySQL用户通过外部IP地址(指定它们)访问的权限。该设置从我的本地计算机使用(以便可以使用可接受的IP地址连接到外部MySQL) 因为AWS对实际的$\u服务器['SERVER\u ADDR']既有一个弹性IP地址,又有一个不同的IP地址。我现在允许两者连接 try { $db_ext = new PDO( 'mysql: host=xxx.xxx.xxx

设置如下:我有两台服务器,一台带有AWS,另一台为“外部”服务器。我希望AWS实例运行连接到外部MySQL的PHP脚本。我已经授予MySQL用户通过外部IP地址(指定它们)访问的权限。该设置从我的本地计算机使用(以便可以使用可接受的IP地址连接到外部MySQL)

因为AWS对实际的
$\u服务器['SERVER\u ADDR']
既有一个弹性IP地址,又有一个不同的IP地址。我现在允许两者连接

try {
    $db_ext = new PDO( 'mysql: host=xxx.xxx.xxx.xxx;
                               port=3306;
                               dbname=THE_DB_NAME',
                       'THE_USER_NAME', 'THE_USER_PASS' );
    $db_ext->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch( PDOException $e ){
    print $e->getMessage();
    die();
}
现在,当我运行此命令时,会出现一个错误:

用户“THE_user_NAME”@“localhost”的SQLSTATE[28000][1045]访问被拒绝(使用密码:是)


我感到困惑……(还有一点是,它拒绝访问
'THE_USER_NAME'@'localhost'
,而不是
'THE_USER_NAME'@'IP-OF-SERVER-RUNNING-THE-PHP-SCRIPT'

这是
mysql:host
之间的空格。因此,只要允许IP地址,这段代码可以从一台机器连接到另一台机器的mysql:

try {
    $db_ext = new PDO( 'mysql:host=xxx.xxx.xxx.xxx; 
                              port=3306; 
                              dbname=THE_DB_NAME', 
                       'THE_USER_NAME', 'THE_USER_PASS' );
    $db_ext->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch( PDOException $e ){
    print $e->getMessage();
    die();
}

您在DSN部分中缺少了一个
,您是否尝试过消除
mysql:
host
之间的空间?您是对的,非常抱歉。
mysql:host
之间的空间是瓶颈。这使得它假设它是本地主机。