首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使多跳SSH隧道成为mysql服务器(3-4跳)

使多跳SSH隧道成为mysql服务器(3-4跳)
EN

Server Fault用户
提问于 2011-09-19 20:01:04
回答 2查看 3.7K关注 0票数 2

我试图访问远程网络上的mysql服务器,为了达到这个目的,我目前需要执行几个ssh操作,这样我就可以使用mysql命令行接口了。我真的很想做一个多跳隧道,这样我就可以使用桌面上的gui了。这怎么做呢?

这是命令:

MacDesktop -> DevServer -->StageServer --> Mysql01

所有( mac桌面除外)都是linux盒,mysql正在标准端口上运行。有什么暗示吗?或者是一个确切的连接线?

EN

回答 2

Server Fault用户

发布于 2011-09-19 21:58:18

您可以使用ssh转发端口(假设mysql服务器配置为在端口3306上接受来自StageServer的连接):

代码语言:javascript
复制
# Forward port 3306 from Mysql01 to local port 3306 on DevServer using StageServer in the middle
DevServer > ssh -L 3306:Mysql01:3306 StageServer
# Forward the local port 3306 on DevServer to local port 3306 on your Mac
MacDesktop> ssh -L 3306:127.0.0.1:3306 DevServer

现在将gui客户端配置为连接到127.0.0.1:3306 (确保您没有在Mac上运行mysql,或者转发到端口3306将失败,或者使用另一个端口进行转发)

编辑:确保在ssh服务器配置中启用本地端口转发。

票数 4
EN

Server Fault用户

发布于 2018-03-21 04:22:46

我知道这个问题很老,但这仍然很有用。

使用多行命令创建一个链接的隧道,如下所示:

代码语言:javascript
复制
ssh -f <DevServer> "ssh -f -L 5678:<MySQL01>:3306 <StageServer> \"sleep 10\"";\
ssh -f -L 3306:127.0.0.1:5678 <DevServer> "sleep 10";\
mysqlsh --sql -h127.0.0.1 -P3306 -u<UserName> -D<Schema>

这将MySQL客户端实用程序连接到远程DB,然后当您退出时,这两个隧道都会关闭。在这种情况下,隧道通过端口5678,但您可以使用任何未使用的端口号。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/313319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档