我想从我的主机连接到远程MySQL,但主机是在一个SSH代理,像这样。
我有3个主机在这个问题
我使用〜/ .ssh / config来允许我直接从A到C(使用B作为代理)。
Host B ProtocolKeepAlives 30 HostName hostnameofB Host C ProtocolKeepAlives 30 ProxyCommand ssh -q B nc -q0 hostnameofC 22 LocalForward 3336 localhost:3306 Port 21343
我用-vvv打开一个从A到C的ssh,看到这个:
debug1: Local connections to LOCALHOST:3336 forwarded to remote address localhost:3306
然后我尝试从Alogin到MySQL:
mysql -uMyUsername -pMyPassword DatabaseName -P3336 -h127.0.0.1 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
(如果我尝试使用-hlocalhost,它将尝试login到我的本地MySQL服务器,即使我使用不同的端口)
在我的SSH -vvv窗口中,我也看到这个:
client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
C MySQL服务器上没有日志。
有什么好的build议?
看起来像你在主机A上运行的mysql命令,试图连接到A上的端口3366; 我没有看到任何地方转发A:3366。 尝试添加从A到B的转发规则,或者如果没有过滤完成,您可以简单地将您的mysql命令更改为命中主机B,而不是“-h127.0.0.1”,这是指A.