通过SSH隧道连接到MYSQL

我可以ssh到远程服务器和login没有问题。

我试图通过SSH隧道连接到远程MySQL数据库,并遇到问题。 我成功创build了隧道(通过telnetvalidation)。 当我尝试使用以下命令login时:

mysql --host=127.0.0.1 -P 3302 -u fakeuser -p 

我明白了

 Access denied for user 'fakeuser'@'192.168.100.93' 

问题是@ 192.168.100.93。 我相信我需要这个fakeuser @ localhost。 由于我通过SSH隧道连接,为什么不被设置为本地主机? 我如何强制它到本地主机? 它从哪里得到192.168.100.93?

请注意,我无法更改MySQL服务器上的任何设置。

谢谢您的帮助!

当你使用ssh隧道的时候,你的系统和远程服务器之间build立一个encryption通信,并将远程打开的端口绑定到你定义的端口上。

ssh -L 33333:localhost:3306 [email protected]

这里你说的3306是mysql的端口号。

使用IPADDRESS而不是本地主机,即127.0.0.1

连接到10.10.0.31closures。
 linux @ tuxworld:〜$ ssh -fNg -L 33333:localhost:3306 [email protected]
 [email protected]的密码: 
 Linux的@ tuxworld:〜$

看下面例如我刚刚做了什么,mysql用户是root,ssh用户也是root。 我打开了一个新的terminal

 linux @ tuxworld:〜$ mysql -u root -h 127.0.0.1 -P 33333
欢迎来到MySQL监视器。 命令以; 或\ g。
你的MySQL连接ID是4
服务器版本:5.1.69源分配

版权所有(c)2000,2012,Oracle和/或其附属公司。 版权所有。

 Oracle是Oracle Corporation和/或其注册商标的注册商标
分支机构。 其他名称可能是其各自的商标
拥有者。

input'help' 或'\ h'寻求帮助。 input'\ c'清除当前的input语句。

 mysql> exit
再见
 Linux的@ tuxworld:〜$