在OSX上通过SSH隧道连接到MySQL时出错

时间:2013-11-02 19:01:48

标签: mysql macos amazon-ec2 ssh mysql-workbench

我正在尝试远程访问amazon ec2 mysql服务器。

我的问题是(肯定)Mac OSX。因为当我尝试通过相同的mysql客户端(MySQL Workbench 6.0)连接到从这个相同的MacOSX机器托管的VM内的窗口时,它工作得很好。

我对这个问题进行了很多搜索。而this guy认为问题出在第三方应用程序iStatPro(实际上是一个仪表板小部件)。我有相同的小部件,我试图删除它,但它没有用。

是否有可能其他应用程序阻止了我的3306端口(或22 ssh默认端口)?如果是这样,最好的方法是找出哪一个?

提前致谢。

修改

我尝试连接时遇到的错误与人得到的错误完全相同。这是:

Your connection attempt failed for user 'xxxx' from your host to server at xxxx.yyyyy.zzzzz.edu:3306:
Can't connect to MySQL server on 'xxxx.yyyyy.zzzzz.edu' (61) 

编辑[2]:

另外,然后我尝试使用mysql workbench连接它立即拒绝连接。让我想一想,它甚至没有机会连接到ssh tunel,在当地被拒绝。

编辑[3]:

我用来连接mysql远程服务器的参数是: SSH主机名:99.999.999.999:22 SSH用户名:ubuntu SSH密码:为空 SSH密钥文件:各自的.pem文件 MySQL主机名:127.0.0.1 MySQL服务器端口:3306 用户名:root 密码:mypassword default_schema:my_default_schema

编辑[4]:

我可以通过终端建立连接就好了。

2 个答案:

答案 0 :(得分:1)

要解决MySQLWorkbench中的SSH连接问题,必须首先在终端中手动创建SSH隧道:

  

<强> ssh -nNT -L 1234:my-ec2-server.us-west-1.rds.amazonaws.com:3306 firstname.lastname@xxx.xxx.xxx.xxx

其中:

  • SSH标志的说明:here
  • 1234 =您计算机上的本地端口
  • 3306 =主机上的标准MySQL数据库端口,以映射到
  • firstname.lastname =您的SSH登录用户名
  • xxx.xxx.xxx.xxx = SSH网关机器(堡垒主机)的IP地址

然后设置MySQLWorkbench以连接到端口1234上的localhost数据库:

MySQLWorkbench - &gt;数据库 - &gt;管理连接 - &gt;新 - &gt;指定名称

  • 连接方法= 标准TCP / IP
  • 主机名= localhost
  • 端口= 1234
  • 用户名= 您的MySQL用户名
  • 默认架构= 您的数据库名称

使用完数据库后,按终端中的 Ctrl + C 手动断开/关闭SSH隧道。

答案 1 :(得分:0)

尝试使用Network utility(应用程序&gt;实用程序&gt;网络实用程序), 在最后一个标签中,您可以在port scan上运行localhost

正在使用的每个端口都将与使用该端口的服务的名称一起监听。

希望这有帮助。