通过 ssh 和端口管道为 Mysql 复制设置主从

通过 ssh 和端口管道为 Mysql 复制设置主从

一切始于我被要求为我们的 Mysql 服务器设置同步方法。考虑到我是一名开发人员,我首先在 DBA 方面遇到了麻烦,现在我发现自己进入了 SysAdmin 领域。

因此,我需要从远程服务器(从服务器,使用)连接到另一个远程服务器(主服务器),以实现数据库的主从复制。我目前的问题之一是如何通过管道连接到位于安全连接后面并监听特定端口的主服务器。我对在网上看到的所有端口都感到迷茫。我的从服务器有本地端口,它应该连接到主服务器端口,然后连接到 mysql 的 3306 端口。

我在两台机器上都设置了新用户(只是为了让他们与现有用户隔离),到目前为止,我已经使用此方法从客户端/从服务器到服务器/主服务器创建了 ssh 连接, 但我无法设置端口转发以便使用本地(从服务器)端口连接到 mySql。我使用了这种方法, 但当我尝试使用时, 出现了错误
ssh -pMasterPort [email protected]

ssh -R 3336:127.0.01:3306 [email protected] -P MasterPort

mysql -h 127.0.0.1 -P 3306
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

任何帮助,将不胜感激

编辑
好吧,我不确定我第一次写错了什么,但现在我得到了一个不同的错误。当我运行

mysql -h 127.0.0.1 -P 3336 -ugemh -pgemh@69

我明白了

channel 2: open failed: connect failed: Connection refused  
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

我不知道我做错了什么。端口在那里打开并等待,当我sudo lsof -i -n在其他人中运行时,我得到

命令 PID 用户 FD 类型 设备大小/关闭节点名称
....
ssh 31338 skaros 4u IPv6 501647763 0t0 TCP [::1]:3336 (监听)
ssh 31338 skaros 5u IPv4 501647764 0t0 TCP 127.0.0.1:3336 (监听)

另一方面,端口转发似乎在某个时候关闭。现在(几个小时后)上述命令不会产生相同的结果。涉及端口 3336 的行不再存在。我怎样才能让它们保留下来以保留隧道以供将来使用?

答案1

使用 rsync -avHPe "ssh -pPORTNUMBER" user@server:/path/to/file /home/user/path/to/file 备用 ssh 端口安全地从服务器下载。要安全地上传到服务器,请尝试 rsync -avHPe "ssh -pPORTNUMBER" /home/user/path/to/file -e ssh user@server:/path/to/file

相关内容