初始化位于主服务器之外的另一个网络上的 MySQL 从服务器

初始化位于主服务器之外的另一个网络上的 MySQL 从服务器

这是我的第一个问题,英语不是我的母语,但我会尽力解释。

我有一个在提供商基础设施中运行的具有公共 IP 地址的主 MySQL 服务器,并且我想在我的办公室中运行一个本地 MySQL 从属服务器,它将复制所有数据以用于测试目的。

设置复制工作完美,我创建了一个 SSH 隧道,让我的从属服务器读取来自主服务器的 binlog,这里一切都很好。

我的问题是设置主服务器的数据。通常,当我想将数据从主服务器加载到同一网络上的任何从服务器时,我会在主服务器上运行以下命令:

mysqldump 'master' --master-data=1 | mysql 'slave' 

但这里我无法为从属设备获取任何 IP,因为它位于我办公室的一系列 NAT 路由器后面...

有人有解决方案吗,因为我无法停止主服务器,而且上面有大约 50GB 的数据。如果您有其他解决方案可以将“热”数据传输到主服务器到从服务器,我也很感兴趣。

提前感谢您。

答案1

假设你可以通过 ssh 连接到主服务器,那么从从服务器连接怎么样?

ssh master 'mysqldump \'master\' --master-data=1' | mysql 'slave'

这将在主机上运行 dump 命令,但在本地重新加载它。

答案2

为什么不直接将其转发为一个文件,然后稍后通过scp或进行传输rsync

mysqldump master --master-data=1 >master.dump

在奴隶

mysql <master.dump

或者,mysqldump在从服务器而不是主服务器上运行该命令。如果没有上述错误,也许它会更好地工作。

提示:也许您应该转储所有数据库而不只是一个?

相关内容