如何从 EC2 实例对 RDS 实例执行 MySQL 查询?

How do I do MySQL queries on an RDS instance from an EC2 instance?

我一直在尝试建立一个系统,我的数据库将在 AWS RDS 实例中,而我的程序将在 EC2 实例中(看似非常简单)

出于某种原因,结果 here 非常无用。

澄清一下,我要找的是一些连接到数据库和 运行 mysql 查询的示例代码。到目前为止,尽管指定了 rds url.

,但我的每一次尝试都以我的程序尝试连接我的 ec2 实例上的本地主机 mysql 结束

这是我的脚本,

<?php
$servername = "maindb.gibberish.us-east-1.rds.amazonaws.com";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (mysqli_error($conn)) {
    die("Connection failed: " . mysqli_error($conn));
}else{
        echo "connected successfully";    
}
?>

您可以使用我的 中的代码,其中还解释了每行代码的作用。您可以在 $servername 变量中键入您的亚马逊 RDS endpoint。并在 $sql 变量中更改您的查询。

在确保您的 RDS 可以被您的 EC2 服务器联系方面。您需要确保安全组已正确设置为允许来自您的服务器的连接。像这样:

1.在您的 EC2 管理控制台中,select 'Security Groups' 来自左侧导航。

2。 Select RDS 服务器的安全组。 n.b。如果您在设置时没有指定具体的名称,那么名称可能看起来像 rds-launch-wizard created xxxxxxx

单击编辑按钮。那里的 IP 地址很可能就是您正在使用的 IP 地址。 (或者您在设置服务器时所在的那个)。您需要将其更改为 ANY,或者只是您的 EC2 服务器的 public IP 地址。

编辑:查看您的代码后,我认为您测试的连接不正确。

<?php
$servername = "maindb.gibberish.us-east-1.rds.amazonaws.com";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {

    die("Connection failed: " . mysqli_error($conn));

}else{
        echo "connected successfully";

}


?>