【发布时间】:2016-12-27 19:54:35
【问题描述】:
我有两个亚马逊 ec2 实例。一个我用作网络服务器,另一个有 mysql DB。我有以下从 Web 服务器运行的 php 脚本。我似乎无法连接到我的数据库。当我使用 $host= localhost 在 mysql 服务器上运行 php 脚本时,它可以工作。如何访问mysql服务器?
<?php
$host="ipaddress"; // Host name
$username="root"; // Mysql username
$password="mypassword"; // Mysql password
$db_name="myDB"; // Database name
$port=3306;
// Create connection
$conn = new mysqli($host, $username, $password, $db_name,$port);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}else
{
echo "Connected";
}
?>
【问题讨论】:
-
猜测您在 MySQL 机器上没有允许 webserver 机器访问它的安全组。您是否有一个安全组允许来自您的服务器计算机的端口 3306?注意不要向世界开放该端口(0.0.0.0)。
-
此外,RedHat 和 IIRC,Windows EC2 实例在机器本身上启用防火墙(RedHat 上的 iptables)。因此,您可能还需要配置或禁用它。亚马逊图像不启用 iptables
标签: php mysql database amazon-ec2