【发布时间】:2021-07-27 10:46:39
【问题描述】:
MySQL 工作台有一个方便的连接选项——“标准 TCP/IP over SSH”。这允许我通过 SSH 连接到与 MySQL 服务器位于同一网络上的远程服务器(我们称其为 myserver@public.com),从而连接到不可公开访问的 MySQL 服务器(我们称之为 mysql@private.com)。
我正在尝试使用 MySQL 命令行客户端重新创建它,但一直失败。我尝试打开一个 SSH 隧道,将端口 3306 从myserver@public.com 转发到127.0.0.1(即localhost)。这不起作用,因为我从来没有指定在哪里可以找到mysql@private.com。
我认为 MySQL 工作台必须通过 MySQL 客户端 CLI 和 SSH 等普遍可用的工具的某种组合来实现这个方便的技巧。如果有人能告诉我它是如何完成的,我将不胜感激。
【问题讨论】:
-
SSH 隧道以这种方式工作:您可以(在您的 SSH 连接中)在 SSH 主机上设置一个端口,该端口将自动重定向到某个主机/端口,然后您可以使用 SSH 主机/端口转到私有主机/端口。因此,在建立连接时,您可以将端口 33306 设置为 mysql@private.com:3306;然后你可以连接到 localhost:33306 就完成了
-
@Marco - 谢谢 - 如果我理解正确的话: 1.
ssh -L 33306:127.0.0.1:33306 myserver@public.com; 2. 然后在 ssh-ed 中:ssh -L 3306:127.0.0.1:33306 mysql@private.com3. 然后从我的本地机器,mysql localhost:33306? -
如果您使用 putty 创建 SSH 连接(在您的 PC 上!)您可以创建一个指向
myserver@public.com的新连接;在此连接中,您设置一个转发端口,例如 33306 到mysql@private.com:3306。当你建立连接时,你的本地端口 33306 将通过公共端口自动重定向到私有服务器,只要 putty 连接处于活动状态!因此,您无需在公共服务器上执行任何操作,只需拥有一个活动的 SSH 服务器。
标签: mysql ssh port mysql-workbench