我在计算机 A 上,并在其上运行 mysql,并且可以连接到它A~ $ mysql -u punkish -p database
,依此类推。
我可以访问也运行 mysql 的计算机 B。我可以通过设置 ssh 密钥对通过端口 2200 ssh 进入 B,一旦进入,我可以像这样连接到数据库
A~ $ ssh -p 2200 punkish@B
B~ $ mysql -u punkish -p database
但是,我想在我的计算机上通过 ssh 设置端口转发,以便我的计算机 A 上的端口 3307 上对 mysql 发出的所有请求实际上都发送到 B 上的端口 3306。这将允许我使用想要连接到的 gui 程序mysql,但不能通过隧道进行。所以,我做以下
A~ $ ssh -p 2200 -L 3307:B:3306 punkish@B
B~ $
以上将我直接登录到 B。我不确定隧道是否已建立,但我假设它是。但是,以下失败(在另一个终端
A~ $ mysql -P 3307 -u punkish -p
Enter password:
ERROR 1045 (28000): Access denied for user 'punkish'@'localhost' (using password: YES)
这是有趣的事情——我有另一个名为 Sequel Pro(Mac OS X 的桌面 MySQL 客户端)的 gui 程序,它能够通过 ssh 连接到 mysql@B 就好了。所以,我知道有些东西有效......我只是不知道如何,所以我可以为另一个 gui 程序启用它。