【问题标题】:Emulating MySQL Workbench "standard TCP/IP over SSH" from the command line从命令行模拟 MySQL Workbench“标准 TCP/IP over SSH”
【发布时间】: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.com 3. 然后从我的本地机器,mysql localhost:33306?
  • 如果您使用 putty 创建 SSH 连接(在您的 PC 上!)您可以创建一个指向 myserver@public.com 的新连接;在此连接中,您设置一个转发端口,例如 33306 到mysql@private.com:3306。当你建立连接时,你的本地端口 33306 将通过公共端口自动重定向到私有服务器,只要 putty 连接处于活动状态!因此,您无需在公共服务器上执行任何操作,只需拥有一个活动的 SSH 服务器。

标签: mysql ssh port mysql-workbench


【解决方案1】:

按照惯例,我在发布此问题之前搜索了大约三个小时,然后在发布后大约三分钟内找到了答案。这里有详细指南: https://medium.com/@deepspaceprog/how-to-connect-via-ssh-to-an-amazon-rds-instance-running-postgresql-5e7661cdd37e 这比我说的要好,但关键命令是这样的:

ssh -N -L 3306:mysql@private.com:3306 myserver@public.com

如果我把它解释成英语,我相信它可能会说 "ssh 进入 myserver@public.com;将本地连接 mysql@private.com 上的端口 3306 转发到本地机器上的 3306"。

【讨论】:

  • 更好:ssh 进入 myserver@public.com 并将本地端口 3306(在您运行 ssh 命令的 PC 上本地)转发到 mysql@private.com 上的端口 3306(必须由 myserver 知道) @public.com)
  • @Marco - 为什么这样更好?
  • 我认为这是对发生的事情的更好解释......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2011-10-01
  • 2021-04-26
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多