通过SSH隧道进行MySQL复制
问题描述:
尽管通过官方文档,文章和SO问题花费了很多时间,但我仍无法通过SSH
隧道设置复制。通过SSH隧道进行MySQL复制
我的主人是192.168.0.105
和奴隶是192.168.0.104
。我已经通过已经建立的SSH隧道:
ssh -L 3305:127.0.0.1:3306 [email protected] -f -N
其中tunneluser
是我主本地用户。
我坐上从下面的输出(省略了不相关的线):
mysql -h 127.0.0.1 -P 3305 -u slave_user -p
它记录,在没有任何:
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Connecting to master
Master_Host: 127.0.0.1
Master_User: slave_user
Master_Port: 3305
...
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
...
Last_IO_Errno: 2003
Last_IO_Error: error connecting to master '[email protected]:3305' - retry-time: 10 retries: 1
...
1 row in set (0.00 sec)
这让我为难的是,如果我尝试的一部分的问题。我开始认为这与权限有关,但我找不到任何暗示来证实我的理论。
我试图设置隧道作为mysql
用户,但是,这并没有工作。没有真正期望,但我必须付出一些努力。
有没有人有任何关于如何调试的建议?
如果我直接通过端口3306
,它没有任何问题。
答
后好几天,我发现了一个ServerFault类似的问题:
MySQL Replication Over SSH - Last_IO_Errno: 2003 - error connecting to master
原来SELinux
不得不做的一切与此!作为@Tek洪昭光解释,你可以通过通过semanage
加入这个自定义端口解决这个:
sudo /usr/sbin/semanage port -a -t mysqld_port_t -p tcp 3305
希望这有助于人谁在类似的问题绊倒。