【问题标题】:Unable to connect MySQL Workbench to RDS instance无法将 MySQL Workbench 连接到 RDS 实例
【发布时间】:2013-05-05 11:38:16
【问题描述】:

我正在关注本教程 http://thoughtsandideas.wordpress.com/2012/05/17/monitoring-and-managing-amazon-rds-databases-using-mysql-workbench/

在创建新服务器实例以连接到 RDS 数据库时,我无法测试数据库连接。 它说 Bad_Authentication[allowed_types=public_key],我尝试了不同的 .pem 文件,并通过很多论坛完成。 我还允许访问我在 RDS 的数据库安全组和 EC2 的安全组中的 IP。

请帮帮我。谢谢。

【问题讨论】:

  • RDS 不使用公钥。您是否尝试通过 SSH 连接?

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


【解决方案1】:

这对我有用。假设您已登录 AWS:

  1. 转到 RDS -> 数据库 -> 选择您的数据库

  1. 确保 Public Accessibility 值为 Yes

  2. 使用http://checkip.amazonaws.com/ 检查您的 IP 地址。如果它没有添加到安全规则组,您应该添加它。 这一步很关键

3.1。单击规则名称。这将打开一个新选项卡,然后单击规则名称。

3.2。点击编辑入站规则

3.3。单击添加新规则,并添加具有以下值的规则:

类型: MYSQL/Aurora。

协议: TCP(默认)

端口范围: 3306(默认)

来源:我的 IP -> 这将是您在 http://checkip.amazonaws.com/ 获得的 IP 地址。

  1. 在 MySQL Workbench 中填写信息

主机名:使用 Endpoint at Connectivity and Security 的值

端口:使用您在连接和安全处的端口值,默认为 3306。

用户名:使用您在配置中的主用户名值

密码:使用您在创建数据库实例时设置的值。

如果您忘记了密码,您可以通过单击数据库实例中的修改来更改它)

希望这对你也有帮助。

【讨论】:

  • 你太棒了!!谢谢。
  • 这些截图很有帮助!此外,对于希望更改其公共可访问性的未来读者,read this answer's comments
  • 我希望我能像那些中篇文章一样给你 50 个赞
  • 我非常感谢你,你为我节省了几个小时的工作时间
【解决方案2】:

对于 RDS,无需使用 ssh。您可以直接将 RDS 与 MySql 工作台连接。 请按照以下步骤操作-

确保您应该在安全组中提供对 MYSQL 的访问权限

  1. 打开 MySQL 工作台并设置新连接
  2. 提供连接名称。
  3. 连接方法设置为标准(TCP/IP)
  4. 在主机名中提供您的 RDS 端点
  5. 端口是 3306
  6. 输入您在 RDS 中提供的用户名。
  7. 测试连接,并提供密码。 而已。 For Reference GoTo This Link

【讨论】:

    【解决方案3】:

    如果您不使用 EC2 实例与 RDS 数据库实例连接,那么数据库实例应具有公共访问权限以进行连接。

    1. 启动数据库实例时,您需要将Publicly Accessible 设置为yes。您将获得公共 IP 以从外部网络连接。这意味着在 VPC 之外。
    2. 您需要在可以直接访问 Internet 的 公共子网 中启动数据库实例。要检查子网是否可以访问互联网,您需要检查子网附带的路由表。在路由表中,检查 Internet Gateway 是否附加到子网。
    3. 您不需要通过 SSH 连接到数据库实例。虽然该选项也不可用。
    4. 在 MySQL WorkBench 中,单击设置新连接
    5. 给出连接名称。选择标准 (TCP/IP) 选项。您没有尝试通过 EC2 实例连接数据库实例,因此在这种情况下使用 SSH 的选项不起作用。您必须提供 MySQL 主机名、用户名、密码和端口。
    6. 要验证连接,请单击测试连接按钮。

    如果您想使用 EC2 Instance 并通过 EC2 Instance 连接 DB Instance,您必须使用 Standard (TCP/IP) over SSH 选项。检查以下链接 What would prevent me from connecting to a MySQL server on AWS RDS from an AWS EC2 VM?

    【讨论】:

    • 我在将 Workbench 连接到 RDS 实例时遇到问题。如何检查 Internet 网关是否连接到子网。在实例配置文件中,子网组被标记为默认。列出了三个子网,我点击其中一个进行检查,但不知道如何检查是否连接了 Internet 网关。
    • @ConnerM。我们需要确认两件事。我们必须检查在公共子网或私有子网中启动的 EC2 实例。另一个,我们需要检查互联网网关是否与VPC关联。
    • @ConnerM。请获取您的 EC2 实例的子网 ID。在 VPC 仪表板中,使用 id 获取该子网详细信息并获取其 VPC id。接下来,请从 VPC 转到 Internet 网关仪表板,如果 VPC id 不可用,请复制/粘贴它,我们必须与该 VPC 关联。
    【解决方案4】:

    我有同样的问题。我认为您需要启用到 VPC 的入站流量。按照下面的文章,你会没事的。默认VPC默认不允许用户访问3306,需要允许流量。

    RDS and MySQL Connectivity

    【讨论】:

      【解决方案5】:

      确保公共可访问性应该是yes。

      另外,在安全组部分,点击安全链接,然后在入站规则部分下添加一个新规则,它将使用以下数据将您的 IP 地址列入白名单:

      类型:MYSQL/Aurora。

      协议:TCP(默认)

      端口范围:3306(默认)

      来源:我的 IP -> 这将是您在 http://checkip.amazonaws.com/ 获得的 IP 地址。

      希望这将有助于成功连接 AWS RDS。谢谢!

      【讨论】:

        【解决方案6】:

        根据您问题中的详细信息,您似乎正在尝试通过 SSH 连接到 RDS 实例。这在 RDS 上不受支持,它仅适用于基于 EC2 的 MySQL 服务器。

        您应该直接连接到 MySQL 服务器,在端口 3306(或您手动设置的端口,如果是这种情况下)并使用您在配置 RDS 实例时创建的用户名和密码。这意味着在 WB 中使用“标准 TCP/IP”连接类型。

        此外,RDS 安全组中应允许您使用 MySQL Workbench 的机器的公共 IP 地址。

        【讨论】:

        • 对于否决票的反馈将不胜感激。如果我的回答提供了过时/不正确的信息,请告诉我。
        【解决方案7】:

        即使我也遇到了同样的问题,比如在尝试了所有的事情之后。一个可行的方法是修改 RDS 数据库并使其可公开访问。事情就这样解决了。

        【讨论】:

          【解决方案8】:

          在我的场景中,问题很简单 我必须在 RDS > db instance 部分的相关安全组中为 MYSQL 启用 3306 端口

          【讨论】:

            猜你喜欢
            • 2016-04-15
            • 2013-10-08
            • 2020-04-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-04-02
            • 2015-04-10
            • 2021-10-13
            相关资源
            最近更新 更多