在 Mac OS X 上转发端口 3306 以连接到远程 MySQL 数据库

在 Mac OS X 上转发端口 3306 以连接到远程 MySQL 数据库

我在 Mac OS X 10.6.2 上尝试连接到 linode 上的 ubuntu 服务器 8.04.1。

ssh -L 127.0.0.1:3306:[[remote ip]]:3306 user@server -N

我想设置 ssh 隧道以便我可以访问远程 mysql 服务器。

首先,我被告知bind: Address already in use。这只有在我之前尝试过该命令之后才会发生。如何手动关闭端口转发会话?

其次,当我将命令更改为ssh -L 127.0.0.1:3310:[[remote ip]]:3306 user@server -N(我更改了要监听的本地端口)时。channel 1: open failed: connect failed: Connection refused当我尝试通过 MySQL workbench 或 sequel pro 连接到 MySQL 服务器时,系统会提示我。

要通过 MySQL 工作台连接,我使用以下设置:

  • 主机:127.0.0.1 端口:3310(如果 3306 正在使用)
  • 用户名:mysql 用户名
  • 密码:mysql密码
  • 数据库:我没有放任何东西

答案1

这应该有效:

ssh -L 3310:127.0.0.1:3306 user@server

第一个端口号是要使用的本地端口(不能已被使用),冒号之间的 IP 是从您要 ssh 连接的主机的角度来看要连接的 IP。第二个端口号是要连接的端口。如果您要连接到的服务器不是您要 ssh 连接的服务器,请尝试以下操作:

ssh -L 3310:<remote-IP>:3306 user@server

通常,当我想要多次执行此操作时,我会在 ~/.ssh/config 中创建一个条目,如下所示,其中 sshhost.example.com 是我要 ssh 连接的服务器,我想要打开的本地端口是 5910,我想要连接的另一端的 IP 是 192.168.35.69,我想要连接的端口是 5900:

Host desk
    Hostname sshhost.example.com
    User jed
    Port 22
    LocalForward 5910 192.168.35.69:5900

然后从命令提示符我就可以执行

jed@jed-mbp:~$ ssh desk

并建立一条通往我办公室桌面的隧道。

祝你好运,

--杰德

答案2

目前在 Mac OS Catalina 上-N需要参数来避免常规登录,因此更新后的命令将是:

ssh -N -L 5984:127.0.0.1:5984 [email protected]

相关内容