Como garantir que um servidor escravo do MySQL esteja usando o túnel SSH para replicar do mestre?

2

Eu preciso proteger a replicação do banco de dados MySQL entre dois servidores CentOS 5.7. O servidor 1 tem o banco de dados ativo, e a replicação já está funcionando bem no Servidor 2, que está localizado em outro lugar na Internet.

Obviamente, isso não é bom, pois o tráfego de replicação pode ser lido facilmente, portanto, ele precisa ser protegido.

Eu criei um túnel SSH digitando isso no Servidor 2:

ssh -f root@server1ip -L 3305:server1ip:3306 -N

Confirmei que consegui logar com sucesso no MySQL no Servidor 1 do Servidor 2 usando:

mysql -h27.0.0.1 -uuser -ppassword -P 3305

Agora, isso significa que a replicação do mysql agora está passando pelo SSH automaticamente? Existe alguma maneira que eu possa confirmar isso? Ou o servidor 2 forçado se conecta ao servidor 1 por SSH devido a essa regra de encaminhamento de porta que estabeleci?

Percebi que, se eu reinicializar o Servidor 2, o túnel SSH desaparecerá quando for reiniciado, mas a replicação continua (assumi de volta em texto sem formatação). Existe algo que eu possa fazer para garantir que a replicação pare quando o túnel cair? Eu quero ter certeza de que ele não continuará automaticamente replicando em texto sem SSH.

Obrigado!

    
por dabayl 26.10.2011 / 20:52

2 respostas

1

Você precisa definir a configuração do mestre de replicação do escravo para que ele passe pela porta vinculada do encapsulamento, em vez do endereço externo do ponto de replicação:

CHANGE MASTER TO MASTER_HOST='127.0.0.1' MASTER_PORT=3305;
    
por 26.10.2011 / 21:07
0

Em vez de um túnel SSH, eu recomendaria usar o stunnel , que acho mais fácil gerenciar para conexões não interativas. Mas isso não é obrigatório.

Depois de configurar a conexão (via SSH ou stunnel ou qualquer outra coisa), você precisa iniciar a replicação - veja a resposta de Shane Madden. Certifique-se de usar as opções MASTER _ * - certas (consulte MUDAR MASTER PARA Sintaxe ).

Eu também preferiria usar o suporte SSL embutido do mysqld, assim como o embobo sugeria. Então você não tem nenhuma dependência externa para a sua configuração de replicação.

Toda a configuração do mysql deve iniciar a replicação automaticamente após a reinicialização / reinicialização / ... - mas certifique-se de monitorar a configuração da replicação do mysql, pois há muitas situações e circunstâncias que podem quebrar sua configuração. Eu realmente recomendo uma ferramenta como pt-heartbeat (sucessora do mk-heartbeat do maatkit -tools) porque Seconds_Behind_Master de SHOW SLAVE STATUS \G não é confiável.

HTH

    
por 26.10.2011 / 22:06