【问题标题】:remote access to mysql on Ec2在 Ec2 上远程访问 mysql
【发布时间】: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


【解决方案1】:
  1. 将用户/主机组合作为 mysql.user 中的合法用户

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

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

这里有三个选择:我的 IP、自定义或任何用于 ip addr CIDR 的地方

  1. 将 mysql 服务器配置为允许远程连接。

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

【讨论】:

  • @Drew-我能够使用公用 IP 的 Gui 工具“HeidiSQL”连接到 mysql Db。但是当我使用我的 php 代码尝试它时它不起作用/
  • 我在drawpierce747 gmail
  • @Drew- 我的代码在phpfiddle.org 上运行时可以正常工作。但是当我在我的服务器上运行它时它不起作用。
猜你喜欢
  • 1970-01-01
  • 2018-04-22
  • 2021-02-20
  • 1970-01-01
  • 2019-12-22
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
相关资源
最近更新 更多