mysql - 反向隧道手动工作,不适用于复制

标签 mysql ssh tunnel

我的 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/

相关文章:

ssh - ngrok 隧道到本地主机重新连接问题

php - WHERE NOT IN 命令在 PHP 中不起作用,但在 SQL 中起作用

facebook - 类似于 Windows 的 'localtunnel'

php - 如果数据库值超过某个日期,您可以使用 mysql 更改数据库值吗?

ssh - 如何防止 Vagrant 询问 ssh key 密码

linux - SSH 发送具有相同配置的不同 key

windows - 通过 ssh 和进程所有权启动独立的批处理文件

javascript - 未找到隧道 URL,回退到 LAN URL

mysql - codeigniter 3.1 PDO mysql 错误号 : 3D000/1046 No database selected

mysql - 如何从联接中的子查询访问父列