我在计算机A上运行mysql,可以A~ $ mysql -u punkish -p database
连接到它。依此类推。
我可以访问运行mysql的计算机B.我可以通过端口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程序启用它。
答案 0 :(得分:1)
-h 127.0.0.1
(注意我没有说localhost,它对待它们的方式不同)。这基本上强制TCP连接而不是套接字文件连接。