【问题标题】:AWS, ec2 and RDS mysqli::real_connect(): Connection timed outAWS、ec2 和 RDS mysqli::real_connect():连接超时
【发布时间】:2018-12-21 11:31:24
【问题描述】:
  1. 我设置了 Ec2 Linux 服务器,其中只安装了 PHP 没有安装 mysql
  2. 我已经单独配置了RDS
  3. 安装工作台并使用RDS端点和用户名密码登录
  4. 在工作台数据库连接完成。我将本地数据库导入 RDS
  5. 现在在我的 Ec2 中,我只有 PHP 而不是 mysql,因为我的数据库在 RDS 中
  6. 在我的 ec2 中,php 正在运行 使用简单的 hello world echo 文件检查它。
  7. 但是 mysqli_connect 脚本给出了连接超时错误。我使用了与连接工作台时相同的凭据。而且我也在使用正确的mysqli_connect脚本。

  8. 我怀疑是不是因为我没有在我的 ec2 linux 服务器中安装 mysql。 但是如果我已经在 RDS 中成功设置了数据库,为什么我需要在 ec2 中使用 mysql

【问题讨论】:

  • 你需要安装mysql-client才能连接到MySQL服务器stackoverflow.com/questions/6962890/…
  • 如果你想使用mysql,你需要PHP的mysql扩展...但是也许你没有EC2的白名单IP地址来连接RDS?
  • @Justinas 我将端口号 3306 的 RDS 的 IP 地址列入 EC2 的白名单。
  • @Shivani 尝试将0.0.0.0/0(公共访问)添加到您的 RDS 入站/出站规则。或者甚至尝试通过 SSH 登录 EC2 并尝试直接从 mysql 连接,而不是先从 PHP 连接
  • 8.我怀疑是不是因为我没有在我的 ec2 linux 服务器上安装 mysql。但是,如果我在 RDS 中成功设置了数据库,为什么我需要在 ec2 中使用 mysql。 ---->对于这一点。您需要 mysql 客户端连接到 RDS mysql 服务器。所以安装mysql客户端从mysql访问rds。并确保端口是开放的并且可以公开访问。

标签: php amazon-web-services amazon-ec2 amazon-rds lamp


【解决方案1】:

首先要安装 mysql-client 然后再试一次。如果即使在尝试与 mysql-client 连接并考虑这些问题后仍无法正常工作,则可能存在多个问题。

  • RDS 实例的状态应该是“可用”。否则它不会连接到任何设备。
  • 检查您的EC2实例IAM角色是否具有访问RDS实例所需的权限。如果您的 IAM 角色没有权限,则它不会获得连接权限,并且会在一段时间后超时。

*如果你能在这里贴一些代码就更好了。

【讨论】:

  • 我做了以下两件事,它开始工作 1. sudo apt-get install mysql-server mysql-client 2. 在 RDS 中将入站和出站更改为 0.0.0.0/0 感谢大家的支持.
猜你喜欢
  • 2020-12-26
  • 1970-01-01
  • 2017-07-25
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 2015-12-31
相关资源
最近更新 更多