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

8
我只是想从本地的MySQL Workbench连接到亚马逊MySQL RDS实例。我此时不想从EC2实例或其他任何服务器连接,也不想做任何特殊处理。我只想以最基本的方式连接,这样我就可以在MySQL Workbench中添加数据库、表和一些数据。
我已经在运行OSX 10.9.4的Mac计算机上下载并安装了MySQL Workbench应用程序。
我在Amazon AWS上设置了一个MySQL RDS实例。
我有一个EC2安全组被授权访问此RDS实例。(如果我需要使用CIDR/IP安全组吗?如果需要,能否详细说明一下)
我打开了MySQL Workbench,并进入“设置新连接”窗口:
  • 连接方法设置为“标准(TCP/IP)”。
  • 主机名是我在该实例的RDS仪表板下找到的终端节点
  • 用户名是我创建此RDS实例时的主用户名。
  • 密码要求“存储在Keychain...”,我输入了我创建此RDS实例时的密码。
当我在WorkBench中测试连接时,出现错误:
Can't connect to MySQL server on 'SERVER_IP_ADDRESS' (60)

我做错了什么?请从头开始逐步解释给新手听。

您可能需要在防火墙中解锁亚马逊使用的端口,您可以在管理面板中对实例进行操作。 - Carlos487
我能从我的个人电脑连接吗,还是必须通过EC2实例连接?我需要创建一个CIDR/IP类型的新安全组吗? - brno792
10个回答

6
我有一个EC2安全组已经被授权连接到这个RDS实例。(我应该使用CIDR/IP安全组吗?如果是,请详细解释一下)
这里可能是你忽略的部分。您需要编辑安全组设置:
- 您需要按照CIDR/IP授权计算机IP以尝试连接到RDS实例。如果您使用相同的计算机编辑安全组,以及使用MySQL Workbench尝试连接,则在选择“连接类型:CIDR/IP”(在安全组设置的底部)时,对话框会自动填充您自己的IP块(将您的IP附加/32)。 - 点击授权,然后就可以了。
在AWS控制台上,这种授权可能需要几秒钟或一分钟才能完成,但是一旦显示“已授权”,连接就应该正常工作。
当然,这是假设您的连接字符串是正确的。;)

2

您需要确保以下几点:

  • 您的VPC安全组允许使用端口连接(默认为3306)。
  • 请确认您的VPC已附加互联网网关。
  • 您的子网路由表必须包含一条路由,将Internet流量定向到互联网网关。( 来源)

对于我来说,最后一个很容易忽略。具体而言,我在路由表中添加了一个目标,指向0.0.0.0/0 (所有)。我不知道这会带来什么安全问题,但是在那之后它起作用了。这是我的一次性数据库,与其他实例/VPC隔离开来。


1

1
  1. 在AWS安全组中,为来自您的计算机的入站连接打开3306端口。
  2. 授予远程访问MySQL的权限 - grant all privileges on . to ‘’@‘’ identified by ‘’ with grant option; flush privileges;
  3. 设置本地MySQL Workbench - MySQLWorkbench设置截图

MySQLWorkbench setup screenshot

祝你好运!


1
e.thompsy的回答对我有所帮助,但是自那以后AWS界面发生了变化。为了允许您的计算机IP访问MySQL实例:
  1. 导航到RDS控制台,单击"实例"。这将列出您的RDS实例。
  2. 展开您要访问的RDS实例。
  3. 在"安全性和网络"部分下,安全组会列出并且它将有一个安全组名称的标识符(sg-xxxxxx)。
  4. 在另一个选项卡中,打开EC2控制台。
  5. 在左侧菜单下的"网络和安全"中,单击"安全组"。
  6. 单击与您的RDS实例具有匹配组ID的安全组。
  7. 该组的选项在下面列出。单击"Inbound"。
  8. 单击"编辑"。对话框将弹出。
  9. 单击"添加规则"。
  10. 选择MYSQL/Aurora,它将填写TCP协议和默认MySQL端口3306的端口范围。如果您想更改此设置,请选择自定义TCP并输入您想要打开的范围。
  11. 在"源"下拉菜单中,如果您正在需要访问的计算机上,则选择"我的IP",否则选择"自定义"并输入要授予访问权限的机器的IP,后跟"/32"。
  12. 单击保存,然后使用"MySql Workbench"使用"标准TCP/IP"连接到您指定的端点的RDS。当然,在这样做时,您将需要输入用户名/密码。

我不知道将该端口对您的IP地址打开会带来什么安全隐患。如果您担心的话,建议在您完成访问RDS实例的操作后撤销入站规则。


我已经尝试了这个,但仍然无法连接 - 我正在使用mysql -h <目标> -P <端口> -u <名称> -p <密码>。连接超时了。 - Jason G
@JasonG 你尝试过使用MySQL Workbench吗?还是只能使用CLI? - big_water
工作台在MAC上不再工作了。我通过将其设置为非私有状态来使其正常工作。 - Jason G

0

0

通过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才能连接成功。

这样就可以连接了。


0

你有几个选项:

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

私钥在哪里? - Timeless

0

亚马逊关于该任务的指导说明看起来不错,所以我不会在这里复制整个内容;只列出相关的部分。我使用命令行,但MySQL Workbench也适用相同的设置:

mysql -h hostname

如果这篇文章没有帮到您,欢迎留言。

0

看起来你的问题是需要设置入站规则以接受你的开发机IP。一旦你这样做了,就可以使用MySQL Workbench连接到MySQL RDS。


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