反向隧道手动工作,而不是复制

时间:2013-08-10 20:39:19

标签: mysql ssh tunnel

我的MASTER mysql服务器位于本地网络上,我有一个新的远程服务器(即在互联网上)。由于MASTER没有可访问的IP,我从文档中收集到我应该建立一个反向隧道。我执行这个:

  

ssh -f -N -T -R 7777:localhost:3306 user@slave.slave.com

在MASTER上

。连接似乎有效 - 我可以去奴隶并连接 使用 mysql 到MASTER没有问题。出于某种原因,复制确实如此 没有开始。 MASTER已经复制到其他两个奴隶而没有问题 - 似乎配置是正确的。

我在奴隶上启动了复制:

CHANGE MASTER TO MASTER_HOST='127.0.0.1', 
                 MASTER_PORT=7777,
                 MASTER_USER='my_repl', 
                 MASTER_PASSWORD='xxxxx', 
                 MASTER_LOG_FILE='mysql-bin.nnnnn', 
                 MASTER_LOG_POS=mm;

SLAVE STATUS报告mysql尝试连接到远程,但从未成功:

error connecting to master 'my_repl@127.0.0.1:7777' - retry-time: 60  retries: 86400

有人可以建议如何诊断这个问题吗?

BTW:操作系统是Linux。

1 个答案:

答案 0 :(得分:0)

我道歉......我没有意识到我必须用127.0.0.1定义一个新用户 IP

所以,'内联网'连接使用

replication_user@machine_name 

作为id,通过反向隧道的连接使用

replication_user@127.0.0.1 

作为id。两者都必须分别声明为mysql。原始邮件中的其余信息是有效的 - 也许这有助于某人......

问候, 约翰

PS:忘了提 - 我使用tcpdump远程调试了这个(MASTER和SLAVE对我来说都很遥远):

tcpdump -i lo 'tcp port 7777'
在SLAVE方面

tcpdump -i lo 'tcp port 3306'
在MASTER上的

(当然,当流量很大时,它不会非常有用)。