无法连接MySQL Workbench到RDS实例

12

RDS不使用公钥。您是否尝试通过SSH连接? - datasage
10个回答

67

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

  1. 进入RDS -> 数据库 -> 选择您的数据库

enter image description here

  1. 确保Public Accessibility值为Yes enter image description here

  2. 使用http://checkip.amazonaws.com/检查您的IP地址。 如果未将其添加到安全规则组中,则应将其添加。这一步至关重要

3.1. 单击规则名称。 这将打开一个新标签,然后单击规则名称。

enter image description here

3.2. 单击编辑入站规则

enter image description here

3.3 在添加新规则中,添加以下值的规则:

Type: MYSQL/Aurora.

Protocol: TCP(默认)

端口范围:3306(默认)

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

在此输入图片描述

  1. 在MySQL Workbench中填写信息

在此输入图片描述

主机名:使用您在连接和安全性中获得的Endpoint值

端口:使用您在连接和安全性中获得的Port值,默认为3306。

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

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

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

在此输入图片描述 在此输入图片描述

希望这也能对您有所帮助。


这些截图非常有帮助!另外,对于未来想要更改其公共可访问性的读者,请阅读此答案的评论 - OfirD
1
将我的本地IP添加进去实际上是至关重要的,正如这个答案所述。我感到困惑的是,我原本认为已经为“所有IP4”(0.0.0.0/0)创建的入站规则应该足够了。 - StackOverflowUser

4
在我的情况下,问题很简单。我需要在RDS > db实例部分的相关安全组中启用MYSQL的 3306端口enter image description here

这是对我有用的解决方案,谢谢@Shujaath。 - Saravanan V

2
请确保“公共可访问性”应为“是”。
另外,在“安全组”部分,单击安全链接,然后在“入站规则”部分下添加一个新规则,该规则将使用以下数据列出您的IP地址:
类型:MYSQL/Aurora。
协议:TCP(默认)。
端口范围:3306(默认)。
源:我的IP -> 这将是您在http://checkip.amazonaws.com/上获得的IP地址。
希望这能帮助您成功连接到AWS RDS。谢谢!

1
如果您未使用EC2实例连接RDS DB实例,则DB实例应具有公共访问权限以进行连接。
  1. 在启动DB实例时,您需要将 Publicly Accessible 设置为“是”。 您将获得公共IP以从外部网络连接。 这意味着VPC之外。
  2. 您需要在公共子网中启动DB实例,该子网直接访问Internet。 要检查子网是否具有Internet访问权限,请检查附加到子网的路由表。 在路由表中,检查 Internet网关 是否附加到子网。
  3. 您不需要SSH进入DB实例。 即使该选项也不可用。
  4. 在MySQL WorkBench中,单击设置新连接
  5. 提供连接名称。 选择标准(TCP / IP)选项。 您不尝试通过EC2实例连接DB实例,因此在这种情况下 SSH 选项不起作用。 您必须提供MySQL主机名,用户名,密码和端口。
  6. 要验证连接,请单击测试连接按钮。
如果您想使用EC2实例并通过EC2实例连接DB实例,则必须使用 SSH上的标准(TCP/IP)选项。请查看以下链接什么会阻止我从AWS EC2 VM连接到AWS RDS上的MySQL服务器?

我在连接Workbench到RDS实例时遇到了问题。如何检查Internet Gateway是否附加到子网中。在实例配置文件中,子网组被标记为默认。列出了三个子网,我点击其中一个进行检查,但不知道如何检查是否已经附加了Internet Gateway。 - Conner M.
@ConnerM。有两件事情我们需要确认一下。第一,我们需要检查一个EC2实例是在公共子网还是私有子网中启动的。另外一件事,我们需要检查互联网网关是否与VPC相关联。 - Kumaresh Babu N S
@ConnerM,请获取您的EC2实例的子网ID。在VPC仪表板中,使用ID获取该子网的详细信息并获取其VPC ID。接下来,请从VPC转到Internet网关仪表板,如果没有可用的VPC ID,则复制/粘贴VPC ID以进行关联。 - Kumaresh Babu N S

1
对于RDS,不需要使用ssh。您可以直接使用MySQL Workbench连接RDS。 按照以下步骤操作-
确保在安全组中为MYSQL提供了访问权限
1.打开MySQL Workbench并设置新连接 2.提供连接名称 3.连接方法设置为标准(TCP/IP) 4.在HostName中提供您的RDS终端点 5.端口是3306 6.输入您在RDS中提供的用户名 7.测试连接并提供密码。 就这样。 参考此链接

1
我遇到了同样的问题。我认为您需要启用VPC的入站流量。按照以下文章操作,问题将会解决。默认的VPC不允许用户访问3306端口,您需要允许流量通过。

RDS和MySQL连接

enter image description here


0

我也遇到了同样的问题,尝试了所有可能的方法都无济于事。最终解决方案是修改RDS数据库并将其公开访问。这样问题就得到了解决。


0

所有其他答案都非常有助于调试连接过程,但对我来说,字面上的解决方法是在初始化MySQL连接时不将密码放入钥匙串中。相反,我按下了测试按钮,并在提示时输入了密码。在运行macOS Monterey V.12.3.1和MBP M1 2020上。


0
根据您问题中的细节,似乎您正在尝试SSH连接到RDS实例。这在RDS上不受支持,它仅适用于基于EC2的MySQL服务器。
相反,您应该直接连接到MySQL服务器,使用端口3306(或手动设置的端口,如果是这种情况)和在创建RDS实例时创建的用户名和密码。这意味着在WB中使用“标准TCP/IP”连接类型。
此外,您使用MySQL Workbench的计算机的公共IP地址应该被允许在RDS安全组中。

0

对我来说,这是一场噩梦,直到我意识到WiFi可能是个问题。尝试使用不同的WiFi或互联网连接SQL Workbench。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接