无法将 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 数据库