我可以通过 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:~$