我的 MASTER mysql 服务器位于本地网络上,并且我有一个远程的新从属服务器(即在互联网上)。由于 MASTER 没有可访问的 IP,我从文档中了解到我应该建立一个反向隧道。我执行这个:
ssh -f -N -T -R 7777:localhost:3306 user@slave.slave.com
在主控上。连接似乎有效 - 我可以转到从站并连接 使用 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
谁能建议如何诊断这个问题?
顺便说一句:操作系统是Linux。
最佳答案
抱歉...我没有意识到我必须使用 127.0.0.1 定义一个新用户 知识产权。
因此,“Intranet”连接使用
replication_user@machine_name
作为id,通过反向隧道的连接使用
replication_user@127.0.0.1
作为 ID。两者都必须分别声明给mysql。原始消息中的其余信息是有效的 - 也许这对某人有帮助......
您好, 约翰
PS:忘了提及 - 我使用 tcpdump 远程调试了这个(MASTER 和 SLAVE 对我来说都是远程的):
tcpdump -i lo 'tcp port 7777'
在从机端,并且
tcpdump -i lo 'tcp port 3306'
在 MASTER 上(当然,当流量很大时,这不会很有用)。
关于mysql - 反向隧道手动工作,不适用于复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18166143/