我可以通过 ssh 连接到远程服务器并毫无问题地登录。
我正在尝试通过 ssh 隧道连接到远程 mysql 数据库并遇到问题。我已经成功创建了隧道(通过 telnet 验证)。当我尝试使用以下命令登录时:
mysql --host=127.0.0.1 -P 3302 -u fakeuser -p
Run Code Online (Sandbox Code Playgroud)
我得到
Access denied for user 'fakeuser'@'192.168.100.93'
Run Code Online (Sandbox Code Playgroud)
问题是@192.168.100.93。我相信我需要它是 fakeuser@localhost。既然我是通过 SSH 隧道连接的,为什么不将它设置为 localhost?我如何强制它到本地主机?它从哪里得到 192.168.100.93?
请注意,我无法更改 MySQL 服务器上的任何设置。
谢谢您的帮助!
当您执行 ssh 隧道时,它会在您的系统与远程服务器之间进行加密通信,并将远程打开的端口绑定到您定义的端口。
ssh -L 33333:localhost:3306 fakeuser@server.remote.com
这里3306正如你所说的是mysql端口号。
使用 IPADDRESS 而不是 localhost 即 127.0.0.1
与 10.10.0.31 的连接已关闭。 linux@tuxworld:~$ ssh -fNg -L 33333:localhost:3306 root@10.10.0.31 root@10.10.0.31 的密码: 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 和/或其公司的注册商标 附属机构。其他名称可能是其各自的商标 拥有者。 输入“帮助”;或“\h”寻求帮助。键入“\c”以清除当前输入语句。 mysql> 退出 再见 linux@tuxworld:~$
| 归档时间: |
|
| 查看次数: |
10927 次 |
| 最近记录: |