Estou tendo problemas para configurar a replicação entre uma instância do MySQL RDS e um mestre externo no EC2. Tanto quanto eu posso dizer, tudo está configurado corretamente, mas o escravo nunca chega ao mestre e não atualiza.
Master é o MySQL versão 5.5, eu tentei configurar slave com 5.5, 5.6 e 5.7 para verificar se a incompatibilidade de versão era o problema, mas obtém o mesmo resultado independentemente da versão.
O mestre EC2 e o RDS escravo estão na mesma região e VPC, e seus grupos de segurança têm acesso um ao outro na porta 3306.
Eu pensei que poderia ser um problema de firewall, então eu usei as mesmas configurações para criar um escravo EC2 (versão 5.5) no mesmo grupo de segurança que o escravo RDS, e aquele era capaz de se conectar, então provavelmente não é isso.
O escravo EC2 é do mesmo tamanho, portanto, provavelmente não é um problema de espaço.
Eu configurei a conexão com a ferramenta AWS RDS:
call mysql.rds_set_external_master \
('[ec2_master].compute.amazonaws.com', \
3306, \
'[master_username]', \
'[master_password]', \
'mysql-bin.000015', \
17072930, \
0);
O escravo permanece no status 'conectando' e não exibe nenhum erro no Last_IO_Errno, mas o registro informa o seguinte (repete as mesmas mensagens repetidas vezes):
[Note] Slave SQL thread initialized, starting replication
in log 'mysql-bin.000015' at position 17072930, relay log
'/rdsdbdata/log/relaylog/relaylog.000001' position: 4
[Note] Error reading relay log event: slave SQL thread was killed
[ERROR] Slave
I/O: error connecting to master '[master_username]@[ec2_master].compute.amazonaws.com:3306' - retry-time: 60 retries: 1,
Error_code: 2003
[Note] Slave I/O thread killed while connecting to master
[Note] Slave I/O thread exiting, read up to log 'mysql-bin.000015', position
17072930
Aqui está a saída de 'show slave status' para minha instância do RDS:
Slave_IO_State: Connecting to master
Master_Host: [ec2_master].compute.amazonaws.com
Master_User: [master_username]
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000015
Read_Master_Log_Pos: 17072930
Relay_Log_File: relaylog.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000015
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table: mysql.plugin,mysql.rds_monitor,mysql.rds_sysinfo,mysql.rds_replication_status,mysql.rds_history,innodb_memcache.config_options,innodb_memcache.cache_policies
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 17072930
Relay_Log_Space: 950
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 0
Master_UUID:
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
O que estou fazendo errado na configuração do EC2- > RDS?