Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Ec2上远程访问mysql_Php_Mysql_Database_Amazon Ec2 - Fatal编程技术网

Php 在Ec2上远程访问mysql

Php 在Ec2上远程访问mysql,php,mysql,database,amazon-ec2,Php,Mysql,Database,Amazon Ec2,我有两个AmazonEC2实例。一个用作Web服务器,另一个具有mysql数据库。我有下面的php脚本,我从web服务器运行。我似乎无法连接到我的数据库。当我在mysql服务器上以$host=localhost运行php脚本时,它可以正常工作。如何访问mysql服务器 <?php $host="ipaddress"; // Host name $username="root"; // Mysql username $password="mypasswor

我有两个AmazonEC2实例。一个用作Web服务器,另一个具有mysql数据库。我有下面的php脚本,我从web服务器运行。我似乎无法连接到我的数据库。当我在mysql服务器上以$host=localhost运行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.user中的合法用户

    从mysql.user中选择用户、主机

  • 打开aws ec2安全组(aws防火墙)

  • 这里有三种选择:我的IP、自定义或IP地址CIDR的任意位置

  • 将mysql服务器配置为允许远程连接

  • 这是绑定地址和跳过网络设置。如果需要,请参阅文档以了解这些更改。

    我猜您的MySQL计算机上没有允许Web服务器计算机访问的安全组。您是否有一个安全组,允许您的服务器计算机上的端口3306?注意不要将该端口对外开放(0.0.0.0)。此外,RedHat和IIRC、Windows EC2实例在机器本身上启用防火墙(RedHat上的iptables)。因此,您可能还需要配置或禁用它。Amazon映像无法启用iptables@Drew-我能够使用Gui工具“HeidiSQL”和公共ip连接到mysql数据库。但是当我用我的php代码尝试它时,它不起作用/我在drewpierce747gmail@Drew-我的代码在上运行时工作正常。但当我在服务器上运行它时,它就不工作了。