使用 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-
在 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数据库 之 MySQL Workbench