Php 到外部MySQL数据库的PDO连接(来自AWS)-“;SQLSTATE[28000][1045]拒绝用户访问;
设置如下:我有两台服务器,一台带有AWS,另一台为“外部”服务器。我希望AWS实例运行连接到外部MySQL的PHP脚本。我已经授予MySQL用户通过外部IP地址(指定它们)访问的权限。该设置从我的本地计算机使用(以便可以使用可接受的IP地址连接到外部MySQL) 因为AWS对实际的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
$\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
之间的空间是瓶颈。这使得它假设它是本地主机。