通过MySQL Workbench连接到Amazon RDS

时间:2014-01-27 00:38:07

标签: mysql amazon-web-services mysql-workbench rds

我在Amazon RDS上创建了一个mysql实例,它给了我以下设置: enter image description here

我试图通过MySQL Workbench连接到这个mysql服务器,它总是说SSH隧道没有经过身份验证。

我尝试通过命令提示符连接到服务器并且它工作正常。这是我使用的命令:

mysql -h ['Endpoint' from setting] --ssl_ca=C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem -P 3306 - u ['Username' from setting] -p

这会提示我输入密码,它运行正常!

现在,当我使用MySQL Workbench进行尝试时,我收到错误并在日志中说明了这一点:

error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
19:17:39 [ERR][     SSH tunnel]: Authentication error opening SSH tunnel: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details

以下是设置:

SSH HostName: ['Endpoint' from settings]
SSH Username: ['Username' from settings]
SSH Password: password
SSH Key File: C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem
MySQL HostName: ['Endpoint' from settings]
MySQL Server Port: 3306
Username: ['Username' from settings]
Password: password same as SSH password
Default Schema: ['DB Name' from settings]

需要注意的一点是,当我能够通过Workbench成功连接到服务器时,我在服务器上运行了以下命令。

GRANT USAGE ON *.* TO 'username'@'%' REQUIRE SSL;

我也在RDS上的“数据库安全组”下提供了本地IP地址(CIDR / IP)访问权。

1 个答案:

答案 0 :(得分:14)

如果来自命令行的连接显然不使用SSH,为什么要在MySQL Workbench中尝试SSH选项?从连接设置中删除它。

而是设置正常的TCP / IP连接,将MySQL主机设置为您的端点。切换到SSL设置页面并激活SSL +设置您的证书文件位置,就像在命令行上一样。

其他信息:

SSH用于MySQL Workbench与远程系统的通信(文件访问,服务器控制等,另请参阅http://en.wikipedia.org/wiki/Secure_Shell)。如果您只想进行MySQL工作(运行查询),则不需要SSH连接。它需要在端点上运行SSH服务器来创建隧道。如果要管理服务器(编辑配置文件,控制服务器进程等)或服务器无法直接访问(例如,防火墙后面不允许与MySQL通信),则需要创建SSH连接端口,出于安全原因)。对于Windows,可以使用WMI为本地网络提供其他解决方案。

SSL是MySQL客户端和服务器(http://en.wikipedia.org/wiki/Transport_Layer_Security)之间通信的加密。它是MySQL用于通信的协议的一部分,完全独立于MySQL Workbench或任何SSH隧道。