我正在尝试在远程 Web 服务器上设置到另一台 MySQL 服务器的 SSH 隧道,以便可以使用 MySQL 查询浏览器轻松浏览数据库。我正在关注此页面,但无法连接到 MySQL 服务器。http://www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over-ssh/
我做了什么:
- 通过 SSH 使用 Putty 登录到 Web 服务器。
- 输入
ssh -L 33060:[database]:3306 [myusername]@[webserver_address]
[...] 后,实际信息会发生变化。 系统要求我输入密码,输入密码后收到以下消息。看来登录成功了。
套接字:协议不受支持
上次登录:.... 2012 年来自.... 版权所有 (c) 1980、1983、1986、1988、1990、1991、1993、1994 加利福尼亚大学董事会。保留所有权利。
FreeBSD 7.1-发布....
欢迎来到 FreeBSD!
在 Windows 中打开 MySQL 查询浏览器并输入
Server Host:
本地主机
Port:
33060
UserName:
我的用户名
PassWord:
我的密码
经文说,
Could not connect to the specified instance.
MySQL Error Number 2003
Can't connect to MySQL Server on 'localhost' (10061)
抱歉,这太基础了。谢谢您的信息。
答案1
由于您想要从使用 Putty 的 Windows 主机访问远程系统,因此您需要在 Putty 内创建隧道,而不是在远程系统上创建隧道。
在 Putty 中设置隧道非常简单。
- 打开腻子
- 如果有的话,加载您的保存会话,或者输入任何连接信息。
- 向下滚动到连接 -> SSH -> 隧道
- 将源端口设置为
33060
- 将目标设置为数据库服务器的 IP,后跟
:3306
mysql 端口。因此类似于192.168.1.1:3306
。 - 点击“添加”
- 单击返回会话选项卡,然后选择保存,或者单击打开即可开始连接
一旦连接,启动数据库应用程序并从应用程序尝试连接到正在监听的服务器127.0.0.1:33060
。
答案2
编辑:刚刚看到您使用了错误的连接字符串:
ssh -L 33060:[database]:3306 [myusername]@[webserver_address
尝试:
ssh -4 -L 33060:localhost:3306 [myusername]@[webserver_address
-4 选项强制使用 IPv4,并且 localhost 是绑定端口的目标(在您的情况下必须是 localhost)
使用 localhost:33060 和远程凭据进行连接。
那应该可行!
否则,请检查服务器 ssh 守护进程配置:
AllowTcpForwarding yes
否则使用该ssh -vv user@host
选项连接到您的服务器,这将为您带来更多信息,如果您看到绑定端口失败至少您应该看到原因。