Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AWS RDS和PDO don';t工作状态[HY000][2002]_Php_Amazon Web Services_Pdo_Amazon Rds - Fatal编程技术网

Php AWS RDS和PDO don';t工作状态[HY000][2002]

Php AWS RDS和PDO don';t工作状态[HY000][2002],php,amazon-web-services,pdo,amazon-rds,Php,Amazon Web Services,Pdo,Amazon Rds,我用RDS创建了我的MySQL 5.7数据库 以前,我使用PDO连接到与web服务器位于同一服务器上的数据库。不是EC2的服务器。一切都很顺利 我创建了我的RDS数据库,并用AWS id修改了DB的类,现在,它不再工作了 连接信息似乎是正确的,因为我可以从MySQL工作台连接到它 这是我的密码: $_HOST = 'xxxxxxxxx.us-east-2.rds.amazonaws.com'; $_PORT = 3306; $_DBNAME = 'xxxxx'; $_USER = 'xxxx';

我用RDS创建了我的MySQL 5.7数据库

以前,我使用PDO连接到与web服务器位于同一服务器上的数据库。不是EC2的服务器。一切都很顺利

我创建了我的RDS数据库,并用AWS id修改了DB的类,现在,它不再工作了

连接信息似乎是正确的,因为我可以从MySQL工作台连接到它

这是我的密码:

$_HOST = 'xxxxxxxxx.us-east-2.rds.amazonaws.com';
$_PORT = 3306;
$_DBNAME = 'xxxxx';
$_USER = 'xxxx';
$_PASS = 'xxxx';

$connexionString = "mysql:host={$_HOST};port={$_PORT};dbname={$_DBNAME}";

self::$_instance = new PDO($connexionString, $_USER, $_PASS);
下面是错误消息:

PDOException:SQLSTATE[HY000][2002]连接尝试失败 因为关联方在一段时间后未作出适当回应 时间,或建立的连接失败,因为连接的主机已 没有回应


您认为发生了什么事?

检查您的安全组:

我怀疑您在RDS端向其发送DB流量的端口未打开以供传入或传出。或者,该端口在您的web服务器上没有为传入或传出打开,不过,我想传出的端口对所有人都是开放的

例如,如果使用默认端口3306,则需要确保RDS安全组和web服务器安全组端口均为3306打开

摘自显示为副本的帖子:

1) 登录AWS控制台并转到“EC2”

2) 在左侧菜单的“网络与安全”下,转到“安全组”

3) 检查有问题的安全组

4) 单击“入站选项卡”

5) 从下拉列表中选择“MYSQL”,然后单击“添加规则”


如果您需要更多帮助,请随时通知我。

尝试删除括号和端口。检查您的AWS配置是否在您的服务器上有您本地公共ip地址的白名单…检查此项:感谢您的帮助,我必须将我的服务器的ip添加到RDS的EC2安全组中,并且可以正常工作。