Reverse tunnel works manually, not for replication

谁说我不能喝 提交于 2019-12-13 04:29:46

问题


My MASTER mysql server is on a local network, and I have a new slave which is remote (i.e. on the internet). As MASTER does not have an accessible IP, I gathered from the docs that I should establish a reverse tunnel. I execute this:

ssh -f -N -T -R 7777:localhost:3306 user@slave.slave.com

on the MASTER. The connection seems to work - I can go to the slave and connect with mysql to the MASTER without problem. For some reason though, replication does not start. MASTER is already replicating to two other slaves without problems - seems the configuration is correct there.

I initiated replication on the slave as:

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 reports mysql trying to connect to the remote, but never succeeding:

error connecting to master 'my_repl@127.0.0.1:7777' - retry-time: 60  retries: 86400

Can anyone suggest how to diagnose this problem?

BTW: OS is Linux.


回答1:


My apologies... I didn't realize I had to define a new user with 127.0.0.1 as IP.

So, 'intranet' connections use

replication_user@machine_name 

as id, the connection which comes through the reverse tunnel uses

replication_user@127.0.0.1 

as id. Both have to be declared to mysql separately. The rest of the info in the original message is valid - maybe this helps someone...

Greetings, John

PS: Forgot to mention - I debugged this remotely (both MASTER and SLAVE are remote to me) using tcpdump:

tcpdump -i lo 'tcp port 7777'

on the SLAVE side, and

tcpdump -i lo 'tcp port 3306'

on the MASTER (of course that would not be very useful when there is much traffic).



来源:https://stackoverflow.com/questions/18166143/reverse-tunnel-works-manually-not-for-replication

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!