无法将 MySQL Workbench 连接到 RDS 实例

Posted

技术标签:

【中文标题】无法将 MySQL Workbench 连接到 RDS 实例【英文标题】:Unable to connect MySQL Workbench to RDS instance 【发布时间】: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 连接? 【参考方案1】:

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

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

    确保 Public Accessibility 值为 Yes

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

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

3.2。点击编辑入站规则

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

类型: MYSQL/Aurora。

协议: TCP(默认)

端口范围: 3306(默认)

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

    在 MySQL Workbench 中填写信息

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

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

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

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

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

希望这对你也有帮助。

【讨论】:

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

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

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

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

【讨论】:

【参考方案3】:

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

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

如果您想使用 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 端口

【讨论】:

以上是关于无法将 MySQL Workbench 连接到 RDS 实例的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Workbench 无法连接到我的 RDS 数据库:无法连接到 localhost

MySQL Workbench 连接到 AWS,收到错误“无法连接到本地主机”

无法从 MySQL Workbench 连接到 RDS MySQL 数据库

无法通过 Workbench 连接到 RDS MySQL 数据库

无法从 MySQL Workbench 连接到服务器(系统错误 61)

无法从 MYSQL Workbench 6.3 CE 连接到 MS SQL 服务器 [重复]