Php AWS RDS和PDO don';t工作状态[HY000][2002]
我用RDS创建了我的MySQL 5.7数据库 以前,我使用PDO连接到与web服务器位于同一服务器上的数据库。不是EC2的服务器。一切都很顺利 我创建了我的RDS数据库,并用AWS id修改了DB的类,现在,它不再工作了 连接信息似乎是正确的,因为我可以从MySQL工作台连接到它 这是我的密码: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';
$_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安全组中,并且可以正常工作。