使用 MySQL Workbench 与 Amazon RDS MySQL 数据库的简单连接

Posted

技术标签:

【中文标题】使用 MySQL Workbench 与 Amazon RDS MySQL 数据库的简单连接【英文标题】:Simple Connection to Amazon RDS MySQL Database using MySQL Workbench 【发布时间】:2014-11-24 08:45:52 【问题描述】:

我只是想从本地计算机上的 mysql Workbench 连接到 Amazon MySQL RDS 实例。我此时并不想从 EC2 实例或任何其他服务器连接或做任何特别的事情。我只是想以最基本的方式进行连接,这样我就可以从 MySQL Workbench 中添加数据库、表和一些数据。

我已在运行 OSX 10.9.4 的 Mac 计算机上下载并安装了 MySQL Workbench 应用程序。

我在 Amazon AWS 上设置了一个 MySQL RDS 实例。

我有一个为此 RDS 实例授权的 EC2 安全组。 (我应该使用 CIDR/IP 安全组吗?如果可以,请详细说明)

我打开了 MySQL Workbench,并在 Setup New Connection 窗口中:

连接方法设置为标准(TCP/IP)。 主机名是我在我的 RDS 仪表板下为此实例找到的端点 用户名是我创建此 RDS 时创建的主用户名 实例。 密码要求“存储在钥匙串中...”我输入了我创建的密码 当我创建这个 RDS 实例时。

当我在 WorkBench 中测试连接时,出现错误:

Can't connect to MySQL server on 'SERVER_IP_ADDRESS' (60)

我做错了什么?新手请从头一步一步来。

【问题讨论】:

您可能需要解锁亚马逊使用的防火墙中的端口,您可以在管理面板中对实例执行此操作。 我什至可以从我的个人计算机连接还是必须通过 EC2 实例连接?我需要创建一个 CIDR/IP 类型的新安全组吗? 【参考方案1】:

你有几个选择:

打开对您计算机 IP 地址的直接 RDS 访问。这应该很容易做到,但如果您的 IP 地址不是静态的或通过允许其他机器共享相同 IP 的 NAT 提供,则可能不那么安全。 在您的 EC2 实例上通过 SSH 隧道访问 RDS。您将使用适当的密钥通过 SSH 连接到您的 EC2 实例,然后从那里连接到 RDS。从安全角度来看,这可能是最好的配置,因为您不需要在 RDS 防火墙中打开任何额外的漏洞,而且您通常会启用 SSH 来访问您的 EC2 实例。

【讨论】:

私钥在哪里?【参考方案2】:

亚马逊的instructions for the task 看起来不错,所以我不打算在这里复制整个内容;只是相关部分。我使用命令行,但同样的设置也适用于MySQL Workbench:

mysql -h hostname

如果这没有帮助,请随时发表评论。

【讨论】:

【参考方案3】:

我有一个为此 RDS 实例授权的 EC2 安全组。 (我应该使用 CIDR/IP 安全组吗?如果可以,请详细说明)

这是您似乎缺少的部分。您需要编辑您的安全组设置:

您需要对尝试通过 CIDR/IP 连接 RDS 实例的计算机的 IP 进行授权。如果您使用同一台计算机来编辑安全组,因为您尝试通过 MySQL Workbench 进行连接,那么当您选择“连接类型:CIDR/IP”(在安全组设置的底部)时,对话框将自动- 填写您自己的 IP 块(您的 IP 附加 /32)。

单击“授权”即可。

我体验过这种授权需要几秒钟到一分钟才能在 AWS 控制台中直观地完成,但是一旦它显示“已授权”,连接应该可以工作。

当然,假设您的连接字符串是正确的。 ;)

【讨论】:

【参考方案4】:

您要确定的几件事:

您的 VPC 安全组允许在您使用的端口上进行连接(默认为 3306)。 确保您的 VPC 连接了 Internet 网关。 您的子网的路由表必须包含将 Internet 绑定流量定向到 Internet 网关的路由。 (source)

对我来说,最后一个漏掉了。具体来说,我在路由表中添加了一个目的地,通向 0.0.0.0/0 (ALL)。我不知道这对安全的影响,但在那之后它起作用了。这对我来说是一个一次性数据库,它与其他实例/VPC 隔离。

【讨论】:

【参考方案5】:

这个链接帮助了我:

http://domino.symetrikdesign.com/2010/10/07/how-to-create-a-mysql-workbench-connection-to-amazon-ec2-server/

SSH 主机名应该是您的 ec2 实例的公共 DNS。

SSH 用户名应该是您的 ec2 实例的用户名(例如:ec2-user)。

SSH 密码应该是您的 ec2 实例的密码。

MySQL 主机名应该是“您在 RDS 仪表板上找到的端点”

用户名和密码应该是 rds 实例的用户名和密码。

【讨论】:

【参考方案6】:

e.thompsy 的回答对我有所帮助,但是从那时起 AWS 界面中的情况发生了变化。为了让你的电脑IP访问MySQL实例:

    导航到 RDS 仪表板并单击实例。这将列出您的 RDS 实例。 展开您要访问的 RDS 实例。 在“安全和网络”部分下,列出了安全组,并将具有安全组名称的标识符 (sg-xxxxxx) 在单独的选项卡中,打开 EC2 仪表板。 在“网络和安全”下的左侧菜单中,点击“安全组” 从您的 RDS 实例中单击具有匹配组 ID 的安全组。 下面列出了该组的选项。点击“入站”。 单击“编辑”。将弹出一个对话框。 点击“添加规则” 选择MYSQL/Aurora,它会为协议填写TCP,为默认MySQL端口的端口范围填写3306。如果要更改此设置,请选择自定义 TCP 并输入要打开的范围。 在“源”下拉列表中,如果您在需要访问的计算机上选择“我的 IP”,否则选择“自定义”并输入要访问的计算机的 IP,然后输入“/32” 单击保存,然后使用您指定的端口使用“标准 TCP/IP”将 MySql Workbench 连接到您的 RDS 端点。当然,您必须在这样做时输入用户名/密码。

我不知道向您的 IP 开放该端口的安全隐患。如果您担心,我建议您在完成需要访问 RDS 实例后撤销入站规则。

【讨论】:

我这样做了,但我仍然无法连接 - 我正在使用 mysql -h -P -u -p 。连接超时 @JasonG 你试过使用 mysql 工作台吗?还是只能使用 CLI? workbench 不再在 MAC 上工作。我可以通过将其设为非私有来使其正常工作。【参考方案7】:
    在 AWS 安全组上,打开 3306 以接收来自您的 机器 授予远程访问 MySQL 的权限 - 将 . 上的所有权限授予由“”标识的“@”,并带有授予选项; 刷新权限; 设置本地 MySQL Workbench - MySQLWorkbench 设置截图

祝你好运!

【讨论】:

【参考方案8】:

要通过 MySQL Workbench 连接 Mysql RDS,请尝试以下步骤。

在windows cmd中输入:mysql -h -P 3306 -u -p [会提示输入密码] 如果安全组和用户名、密码正确,你会得到 mysql 对话框

ERROR 2003 (HY000): Can't connect to MySQL server on '' (10060) - 当没有入站规则时发生错误。

始终尝试为 DB 维护一个新的安全组。

如果选择默认安全组,则默认拒绝访问。

安全组入站规则必须修改为 MYSQL/Aurora TCP 3306 MyIP

它已连接。

【讨论】:

【参考方案9】:

您可以简单地使用 aws 推荐的工作台,但让您在任何地方都可以使用所有 SSL 和 MYSQL/Aurora..同时将 MYSQL/Aurora 3306 添加到安全组

https://aws.amazon.com/getting-started/tutorials/create-mysql-db/

【讨论】:

【参考方案10】:

听起来您的问题是您需要设置入站规则以接受您的开发机器 IP。完成后,您可以使用 MySQL Workbench 连接到 MySQL RDS。

【讨论】:

以上是关于使用 MySQL Workbench 与 Amazon RDS MySQL 数据库的简单连接的主要内容,如果未能解决你的问题,请参考以下文章

将 MySQL Workbench 与 Google Cloud SQL 连接起来

MySQL CASE 语句在 Workbench 和 Angular 中返回不同的结果

MySQL Workbench 逆向工程师与导出数据

怎样备份/还原MySQL数据库 之 MySQL Workbench

Ubuntu20.04安装MySQL及配置MySQL workbench

Ubuntu20.04安装MySQL及配置MySQL workbench