我试图访问远程网络上的mysql服务器,为了达到这个目的,我目前需要执行几个ssh操作,这样我就可以使用mysql命令行接口了。我真的很想做一个多跳隧道,这样我就可以使用桌面上的gui了。这怎么做呢?
这是命令:
MacDesktop -> DevServer -->StageServer --> Mysql01
所有( mac桌面除外)都是linux盒,mysql正在标准端口上运行。有什么暗示吗?或者是一个确切的连接线?
发布于 2011-09-19 21:58:18
您可以使用ssh转发端口(假设mysql服务器配置为在端口3306上接受来自StageServer的连接):
# 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服务器配置中启用本地端口转发。
发布于 2018-03-21 04:22:46
我知道这个问题很老,但这仍然很有用。
使用多行命令创建一个链接的隧道,如下所示:
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,但您可以使用任何未使用的端口号。
https://serverfault.com/questions/313319
复制相似问题