Estou migrando o banco de dados da minha empresa de uma instância EC2 para uma instância RDS. Já migrei um instantâneo de dados e agora estou tentando configurar a replicação para obter os dados que foram adicionados desde o instantâneo.
Estou seguindo as instruções deste link:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html
Quando ligo mysql.rds_start_replication
, SHOW SLAVE STATUS\G
mostra o seguinte:
Slave_IO_State: Connecting to master
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Seconds_Behind_Master: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Da minha pesquisa no Google sobre o assunto, sou levado a acreditar que este é um problema de rede/firewall. Verifiquei se meu RDS possui um grupo de segurança que permite todo o tráfego de rede com a máquina de origem (IP privado e IP elástico) e a máquina de origem possui um grupo de segurança que permite todo o tráfego de rede com o endereço IP da instância do RDS.
O servidor mestre tem um usuário configurado com privilégios de replicação.
Tenho certeza de que deve haver algo fácil que estou perdendo aqui.
Eu tentei executar flush hosts
no servidor mestre.
Como faço para que a replicação prossiga com sucesso?
Algumas informações adicionais:
- O servidor mestre é a versão 5.5.33
- O servidor escravo é a versão 5.6.13
- O servidor master está usando old_passwords=1
- O servidor slave está usando old_passwords=0
Tentei configurar SESSION old_passwords=0
o mestre, criando um novo usuário de replicação com um novo formato de hash longo, mas ainda não consigo iniciar a replicação.
O erro que recebo é:
Last_IO_Errno: 2049
que parece estar relacionado ao protocolo de autenticação.
Preciso reiniciar completamente o servidor mestre MySQL, com old_passwords=0 no arquivo my.cnf?
Como você controla
my.cnf
no EC2, você tem duas opções, nenhuma das quais requer a reinicialização do mysqlOPÇÃO #1: Alterar protocolo old_password para EC2
SET GLOBAL old_passwords = 0;
OPÇÃO #2: Reduzir a segurança para EC2
SET GLOBAL secure_auth = OFF;
Para obter mais informações, leia a documentação do MySQL old_passwords e secure_auth .
De uma chance !!!
ATUALIZAÇÃO 2017-07-20 16:32 EDT
Nenhum desses métodos funciona para o MySQL 5.7, pois ambas as opções estão obsoletas.