通过 SSH 隧道使用 Windows/Mac MySQL GUI

通过 SSH 隧道使用 Windows/Mac MySQL GUI

我正在处理客户的一个网站,他通过 1and1 进行托管。他们不允许从任何地方直接连接到他们的 mySQL 服务器。例如,我无法在 Windows 上加载 mySQL GUI,然后连接并处理数据库,系统提示主机未找到。另一方面,他的托管帐户被授予访问 mySQL 服务器的权限,即使它位于不同的位置。假设这些是我正在使用的服务器:

他的主要主持:
地址:thehost.com
用户名:joe

他的 mySQL 服务器:
地址:mysqlserver.com
端口:3306
数据库:thedata
用户:dbouser

他的主托管帐户带有 SSH。因此,如果我通过 SSH 进入 thehost.com 的端口 22,然后使用 mysql 命令连接到 mysqlserver.com,它就可以正常工作。我曾尝试设置 SSH 隧道,但问题是允许 SSH 的不是 mySQL 服务器,而是主托管。如何在 Mac 和 Windows 计算机上设置 SSH 隧道,以便我可以运行我想要的任何 GUI,并且我将能够连接到 mysqlserver.com 服务器。所有信息均基于上述信息,即 SSH 访问仅限于 thehost.com,并且 thehost.com 本身可以连接到 mysqlserver.com。

答案1

ssh -L9999:mysqlserver.com:3306 [email protected]

然后告诉你的 MySQL Gui 连接到 localhost:9999

答案2

我认为 50% 的解决方案是使用 -Y ssh 选项,假设主机具有您想要的 GUI。

来自 ssh 手册页:

 -Y      Enables trusted X11 forwarding.  Trusted X11 forwardings are not
         subjected to the X11 SECURITY extension controls.

因此从您的 PC/Mac ssh -Y [email protected]

然后当你在 thehost.com 上 [email protected]> /usr/bin/mysql-query-browser

并添加 mysqlserver.com 信息。应将 mysql 浏览 UI 引导回您的 Mac/PC。

答案3

在 Mac 上,Sequel pro 默认允许您执行此操作,但我仍在寻找 Windows GUI 客户端来执行此操作。

答案4

假设 MySQL 在标准 3306 端口上,您只需在 Unix/OSX 上发出此命令:

ssh -L3306:localhost:3306 username@host

然后您使用 GUI 连接到本地主机。

相关内容