通过 SSH 隧道连接到 MYSQL

通过 SSH 隧道连接到 MYSQL

我可以通过 ssh 连接到远程服务器并登录,没有任何问题。

我正在尝试通过 ssh 隧道连接到远程 mysql db,但遇到了问题。我已成功创建隧道(已通过 telnet 验证)。当我尝试使用以下命令登录时:

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 隧道连接的,为什么不将其设置为 localhost?我如何强制将其设置为 localhost?它从哪里获取 192.168.100.93?

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

谢谢您的帮助!

答案1

当您执行 ssh 隧道时,它会在您的系统和远程服务器之间建立加密通信,并将远程打开的端口绑定到您定义的端口。

ssh -L 33333:本地主机:3306[电子邮件保护]

这里 3306 正如你所说是 mysql 端口号。

使用 IPADDRESS 而不是 localhost,即 127.0.0.1

与 10.10.0.31 的连接已关闭。
linux@tuxworld:~$ ssh -fNg -L 33333:localhost:3306[电子邮件保护]
[电子邮件保护]的密码:
linux@tuxworld:~$

参见下面我刚才的操作,mysql 用户是 root,ssh 用户也是 root。我打开了一个新的终端

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 及其
附属公司。其他名称可能是其各自所有者的商标。
拥有者。

输入“help;”或“\h”获取帮助。输入“\c”清除当前输入语句。

mysql>退出
再见
linux@tuxworld:~$


相关内容