【发布时间】:2011-10-01 13:01:48
【问题描述】:
我在电脑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 程序启用它。
【问题讨论】:
-
也许这更适合超级用户(superuser.com)?
标签: mysql ssh ssh-tunnel