我可以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:〜$