我无法从 EC2 服务器连接到 Amazon RDS 实例,但可以从其他任何地方连接

我无法从 EC2 服务器连接到 Amazon RDS 实例,但可以从其他任何地方连接

我知道网站上还有其他类似的问题,但我无法找到解决方案。

我已设置 RDS 实例。我们在 EC2 实例上运行我们的网站。

我知道MySQL它可以在 EC2 实例上运行,因为我们当前的MySQL数据库在不同的非 RDS 服务器上运行,并且一切正常。

我可以通过工作台连接到 RDS 实例MySQL(我已经批准使用我的公共 IP 地址进行连接)。

phpMyAdmin我可以通过 连接到安装在 EC2 服务器上的RDS 实例。

但是,我无法使用 PHP/MySQLi 连接到 RDS 实例。

DEFINE ('DB_USER', '**user**');
DEFINE ('DB_PASSWORD', '**pass**');
DEFINE ('DB_HOST', '*************.rds.amazonaws.com');



if($dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD)){

    //DB connected, do nothing

}

else {

    echo 'Connection error';
    echo mysqli_error();
    exit();

}

我没有收到任何错误输出,什么都没有。它只是回显“连接错误”。

我让 EC2 实例和 RDS 共享一个安全组(虽然我只能编辑入站规则,而不能编辑出站规则,这很奇怪吗?),并在 RDS 安全设置上允许 EC2 的公共弹性 IP。

我迷路了!

答案1

请尝试以下操作:

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

用您的凭证替换localhostmysql_user和。mysql_password

或者

//conection:
mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link)); 

相关内容