【问题标题】:Connecting to Amazon RDS MySql remotely远程连接到 Amazon RDS MySql
【发布时间】:2019-12-03 07:08:04
【问题描述】:

我正在尝试使用MySql WorkBenchHeidiSql 甚至console Mysql.exe 从我的计算机连接到 Amazon RDS 上的 MySql,但我一直收到此错误:

ERROR 2003 (HY000): Can't connect to MySQL server on 'MY-SERVER-NAME' (10060)

  1. 在实例的安全组中,我创建了一个允许所有流量的新入站规则,并应用了它,但仍然 - 相同的错误。
  2. 我的计算机上没有活动的防火墙,并且有良好的互联网访问权限
  3. 我可以从 Amazon EC3 服务器访问数据库,我正在使用 HeidiSql 进行连接,但完全相同的设置(主机、用户名、密码)在我的计算机上不起作用

仍然没有任何效果。我很确定我的安全组被配置为允许外部连接,如下一个屏幕截图所示,还有另一个地方有防火墙规则吗?

【问题讨论】:

  • 您是否阅读了入门文档? docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
  • 是的,我正在进入一个已经存在的项目,所以数据库已经创建,但其他一切都和写的一样
  • 尝试使用公共 dns 地址连接。
  • 感谢您的帮助,我在哪里可以找到我的公共 dns 地址?

标签: mysql amazon-web-services amazon-rds


【解决方案1】:

在我想远程连接的 VPC 上使用 RDS 实例时,我遇到了同样的问题。要解决此问题,我需要执行以下操作:

  • 转到 AWS 中的 VPC 管理控制台
  • 转到 Internet 网关(左侧)
  • 创建一个 Internet 网关并将其附加到我的 VPC。记下此网关的 ID。
  • 转到路由表
  • 编辑与您的 RDS 实例关联的子网关联的路由表
  • 添加路线:
    • 目的地:0.0.0.0/0
    • 目标:您的 Internet 网关的 ID

我的表中没有这条路由,因为我手动创建了我的 VPC,没有使用向导,但如果您使用向导,它会自动为您创建这条路由。

注意:这假设您的安全组已配置为允许您的 IP 进行连接。

【讨论】:

  • 如果您已创建子网,请不要忘记通过转到“子网关联”选项卡将这些子网与路由相关联。
【解决方案2】:

2003 年的错误是 Access-Denied Error 我敢打赌你没有配置 RDS 来接受你的 IP 地址。

这可以通过转到数据库安全组 -> 单击默认 -> 并添加新的 CIDR/IP 范围来完成。我相信如果您将其设置为 0.0.0.0/0 它将接受所有 IP 地址

【讨论】:

  • 错误 2003 不是“拒绝访问错误”——它是一个通用错误,表明客户端由于各种不同的原因无法连接。代码 10060 是 Windows 错误代码 WSAETIMEDOUT -- Connection timed out。在建立 TCP 连接并协商 TLS(如果使用)之后,拒绝访问是服务器主动拒绝允许用户名 + 密码 + IP 地址的特定组合。不是这个。
【解决方案3】:

我使用 SQLyog 从我的机器连接到 Amazon RDS。

你可以参考这个博客:http://blog.webyog.com/2009/11/06/amazon-rds-the-beginners-guide/

【讨论】:

【解决方案4】:

安全组设置只是防火墙规则。如果您可以从您遇到问题的主机远程登录您配置的 MySQL 端口,那么您没有安全组问题。

可能是 MySQL 授权不允许外部 IP。如果您知道 root 用户/密码,并且可以使用它从有效的 EC2 实例进行连接,请确保您用于从外部连接的用户具有正确的权限。这是有关如何添加新权限或创建新用户的文档:

http://dev.mysql.com/doc/refman/5.1/en/grant.html http://dev.mysql.com/doc/refman/5.1/en/adding-users.html http://dev.mysql.com/doc/refman/5.0/en/access-denied.html

【讨论】:

    【解决方案5】:

    您是否将安全组分配给您的 RDS 实例?如果您没有修改默认安全组,则需要将您的安全组添加到您的 RDS 实例中。

    【讨论】:

      【解决方案6】:

      就我而言,我的公司有两个不同的网络连接。当我去谷歌搜索“我的 IP 是什么?”我得到了一个答案; 209.x.y.z.当我访问 checkip.amazonaws.com 时,我得到了另一个答案; 199.a.b.c.

      我已经为 209.x.y.z 添加了 VPC 安全组规则,结果发现我需要为 199.a.b.c.

      为 199.a.b.c 添加规则解决了这个问题。

      【讨论】:

        【解决方案7】:

        我遇到了和你一样的问题,所有的防火墙都打开了,但是还是不能从我的本地机器远程访问我的RDS mysql。我最后的锻炼是在您的 RDS 数据库中有一个 “公共可访问性” 选项。默认为“否”,勾选“是”后,一切顺利。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-02-17
          • 2015-04-10
          • 2016-08-04
          • 2015-05-16
          • 1970-01-01
          • 2018-06-03
          • 1970-01-01
          • 2019-07-25
          相关资源
          最近更新 更多