在 Windows 上,我曾经使用 Bitvise Tunnler 通过 SSH 连接将我的 PC localhost:33306 上的所有流量转发到我的服务器 - 然后从那里到 mysqlserver:3306 服务器数据库。
PC:33306 -> server:3306 -> databaseserver:3306
现在我使用的是 linux,我发现随时随地使用 SSH 很容易:
ssh [email protected]
但是,我不确定如何使用 ssh 选项复制此端口转发。如果只是从一台计算机到另一台计算机,我想我可以做这样的事情......
ssh -L 33306:localhost:3306 [email protected]
更新
我尝试使用以下 SSH 进行连接,并且连接似乎有效。
ssh -L 33306:localhost:3306 [email protected]
但是 phpMyAdmin 在尝试连接到其他服务器时会抛出此错误
#1045 - Access denied for user '[[user]]'@'localhost' (using password: YES)
然后我尝试了
ssh -L 33306:db.server.com:3306 [email protected]
和 phpMyAdmin 抛出了这个错误
#1045 - Access denied for user '[[user]]'@'localhost' (using password: YES)
运行netstat -an | 更多节目
tcp6 0 0 ::1:33306 :::* LISTEN
同样,流程应该如下所示:
mypc -> server -> otherdbserveronprivatelan
这应该这样做:
ssh -L 33306:databaseserver:3306 [email protected]
它确实奏效了。但是,我在尝试连接时仍然使用“localhost”而不是“127.0.0.1”。
http://blog.dreamhosters.com/kbase/index.cgi?area=2991
这不是ssh 问题,而是 MySQL 问题。对于 MySQL,您需要确保已授予用户对该数据库的访问权限。这通常通过以下方式完成:
这里要注意的主要是
'host'
设置。由于您是通过 SSH 建立隧道,因此您需要这样做'username'@'localhost'
才能工作。的通配符设置'username'@'%'
不适用于 localhost 连接。