好的,所以我从 AWS 创建了一个 ubuntu 实例,并像在常规 Ubuntu 操作系统中一样在其上下载了 LAMP。当我尝试从我的 php 脚本连接到数据库时,它拒绝连接。说“连接失败:连接被拒绝”。所以我想我的问题是:亚马逊是否不允许您在不使用他们的 RDS 数据库服务的情况下连接到数据库,或者我在这里做错了什么? (出于安全目的,我隐藏了一些数据,...是我的实例的编号)。当我将“ec2-34-...-..-64.compute-1.amazonaws.com”放入浏览器时,会出现 apache 消息,所以我不明白为什么这不能用作服务器名称?
$servername = "ec2-34-...-..-64.compute-1.amazonaws.com";
$username = "root";
$password = “hidden";
$dbname = "questions87";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
最佳答案
您需要更改与 3306 相关的 EC2 安全组入站规则,您可以在 AWS FAQ 上找到该规则。然后,您需要确保您的 user@YOURIP 拥有您的 MySQL 数据库的所有权限。对于您的入站规则,建议对您的 IP 使用自定义规则,而不是所有流量。
引用与延伸阅读:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html
关于php - 连接到在 Ubuntu AWS 实例中创建的 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45663593/