Обратный туннель работает вручную, а не для репликации

Мой MASTER MySQL сервер находится в локальной сети, и у меня есть новый ведомый, который является удаленным (то есть в Интернете). Поскольку MASTER не имеет доступного IP-адреса, я узнал из документов, что я должен установить обратный туннель. Я выполняю это:

ssh -f -N -T -R 7777: локальный хост:3306 user@slave.slave.com

на МАСТЕР. Кажется, что соединение работает - я могу перейти к slave и без проблем подключиться с 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.

1 ответ

Мои извинения... Я не осознавал, что должен был определить нового пользователя с 127.0.0.1 в качестве IP.

Таким образом, "интранет" соединения используют

replication_user@machine_name 

как идентификатор, соединение, которое идет через обратный туннель, использует

replication_user@127.0.0.1 

как идентификатор Оба должны быть объявлены в MySQL отдельно. Остальная информация в исходном сообщении действительна - может быть, это кому-то поможет...

Привет Джон

PS: забыл упомянуть - я отлаживал это удаленно (MASTER и SLAVE мне не нужны), используя tcpdump:

tcpdump -i lo 'tcp port 7777'

на Рабской стороне, и

tcpdump -i lo 'tcp port 3306'

на MASTER (конечно, это было бы не очень полезно, когда есть много трафика).

Другие вопросы по тегам