【问题标题】:How to connect PHP to MySQL in private subnet VPC如何在私有子网 VPC 中将 PHP 连接到 MySQL
【发布时间】:2019-06-24 10:05:15
【问题描述】:

您好,我有两个 EC2 实例,一个在公共子网中,一个在我的 VPC 的私有子网中。

Web server (EC2) - public subnet
MySQL database (EC2) - private subnet

我没有使用 AWS RDS 作为数据库,我使用的是 EC2。

这是我的 PHP 代码:

define ("DB_HOST", "");
define ("DB_USER", "dbuser");
define ("DB_PASS",'dbpassword');
define ("DB_NAME","dbname");
try {
    $dsn = "mysql:dbname=".DB_NAME.";host=".DB_HOST;
    $dbh = new PDO($dsn, DB_USER, DB_PASS);
    return $dbh;
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

如果 EC2 实例位于私有子网上,我应该在 DB_HOST 中添加什么?

【问题讨论】:

    标签: php mysql amazon-web-services amazon-ec2 subnet


    【解决方案1】:

    如果 EC2 实例位于私有子网上,我应该在 DB_HOST 中添加什么?

    数据库 EC2 服务器的私有 IP 地址。

    【讨论】:

    • 哇,令人惊讶的是,我不知道为什么我没有尝试过。有用!好的,那么 NAT 网关的用例是什么?
    • 另外,我如何通过 SSH 连接到我的私有子网 EC2 服务器?
    • @TimmyBalk - NAT 网关为私有子网中的实例提供对 Internet 的出站访问。例如,访问补丁和更新。如果没有 NAT 网关(或其他路由设备,如 VGW、PrivateLink、VPC 端点、VPC Peering 等),私有子网中的实例只能与同一 VPC 中的其他实例通信。
    • @JohnHanley 明白了!感谢大家在我了解到这些时对我如此耐心!有趣的东西!我需要什么才能通过 SSH 连接到我的私有子网 EC2?
    • @TimmyBalk - 创建新问题,而不是通过 cmets 提问。
    【解决方案2】:

    回答你在 cmets 中提到的其他问题

    使用它通过公共连接到私有实例: 在你的系统终端上输入这个

    ssh -o ProxyCommand='ssh -i key.pem -W %h:%p ec2-user@public_ip' ec2-user@private_ip -i key.pem
    

    【讨论】:

      猜你喜欢
      • 2017-01-28
      • 2022-12-23
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2016-07-21
      • 2011-01-18
      • 2020-06-13
      • 2014-05-26
      相关资源
      最近更新 更多