【问题标题】:Amazon AWS server with database on localhost, how do I ssh so that my php webservices on localhost can run on it?本地主机上带有数据库的亚马逊 AWS 服务器,我如何 ssh 以便本地主机上的我的 php 网络服务可以在其上运行?
【发布时间】:2013-07-13 22:55:12
【问题描述】:

这里是服务器新手!

我可以访问亚马逊 AWS 服务器,并且我的本地主机上有一个 php 网络服务。 php 在 web 服务上正常工作。 MySQL 设置在服务器上。但是,我无法连接到我的服务器。我通过 SSH 连接到亚马逊 AWS 服务器并从那里开始工作,从而在亚马逊 AWS 服务器上设置了所有内容。有没有办法让我通过我的网络服务 ssh 进入服务器?

重申一下: -我的 php 脚本位于 localhost/ ... - 我的服务器通过 ssh 访问,然后在我的 localhost 上,它由 amazon aws 托管(默认端口 3306)

我尝试了一位用户建议的过程,该过程是在我的终端中输入以下内容:

ssh -L 8080:127.0.0.1:3306 -f -C -q -N -i ./password.pem user@host.com

然后当我使用 mysqli connect 时,我输入:

new mysqli('127.0.0.1:8080','root','mypassword');

非常感谢您的帮助!

【问题讨论】:

  • 首先,让我们谈谈在 AWS 实例上运行 MySQL。我猜你想让你的数据库数据持久化吗?您是否使用 EBS 卷来存储 MySQL 二进制数据?否则,您将在某个时候丢失所有数据。我强烈建议您考虑使用 RDS 来满足您的数据库需求。
  • @MikeBrant 嗨,我希望不要删除数据库数据。我有一个 SQL 转储,用于将所有数据加载到数据库中,因此如果我稍微破坏数据库,实际上不会丢失任何数据。我目前确实有 RDS 和 EC2。我真的不知道这有什么帮助,你能帮我连接吗?

标签: php mysql web-services ssh amazon


【解决方案1】:

听起来您正试图从本地服务器连接到远程数据库(如果我理解正确的话)。您想仔细检查 AWS 中的安全组,它们是否允许您的计算机 IP 地址连接到服务器实例/端口 3306 是否对您的 PC 开放。如果这一切都设置好了,那么您应该能够使用 public dns 或弹性 IP(如果它是 EC2 实例)或 endpoint 连接到实例(如果它是)一个 RDS 实例。

【讨论】:

  • 嗨 - 感谢您的帮助,但我需要更多说明。我将如何使用公共 DNS 或弹性 IP 进行连接?这是一个 EC2 实例。
  • 好吧,您可能希望您的数据库位于 RDS 实例中,但要连接到 EC2 实例,只需使用公共 dns 或弹性 ip(如果您已关联弹性 ip)而不是您的本地主机连接脚本。 new mysqli('ec2-12-345-67-89.compute-1.amazonaws.com', 'user', 'pwd', 'db')您是否已经为 EC2 实例配置了安全组?
  • 感谢您迄今为止的帮助!我尝试了提供的代码(当然是我自己的主机名),但连接失败。我不确定 AWS 中的安全组是什么意思 - 这是通过 aws.amazon.com 完成的以覆盖对 SSH 连接的需求吗?
  • 您需要编辑您的 ec2 实例的安全组,以允许在端口 3306 上连接到您的 IP。使用 3306 作为端口范围,并将您的 PC 的 IP 地址与/32 后面的/32 作为源,即:12.345.67.89/32
  • 非常感谢您的耐心等待! :) 我会赞成你的回答,但我现在太新了,不能这样做。
猜你喜欢
  • 2021-12-17
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 2018-05-20
  • 2015-08-17
  • 2021-06-04
  • 2015-05-30
  • 1970-01-01
相关资源
最近更新 更多