Perguntas Frequentes
Replicação completa Master-Slave MySQL/MariaDB
Última atualização 4 ano(s) atrás
No servidor MySQL-1 (O que já estiver me produção) faça:
- Edite o arquivo my.cnf (/etc/mysql/my.cnf em instalações padrões)
- Altere as linhas de:
/etc/mysql/my.cnf
bind-addres = 127.0.0.1 ... #server-id = 1 #log-bin = /var/log/mysql/mysql-bin.log |
Para
/etc/mysql/my.cnf
bind-addres = 0.0.0.0 #Ou adicione o IP do seu segundo servidor Master ... expire_logs_days = 5 #Dias de retenção do log server- id = 1 #Apenas descomente slave_compressed_protocol #Protocolo de compressão binlog_format = row log-bin = /var/log/mysql/mysql-bin .log #Apenas Descomente |
- Reinicie o servidor;
- Entre no mysql (mysql –u root –p)
- Crie um usuário de replica com GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’ IDENTIFIED BY ‘repl’;
- Saia do mysql (\q);
- Crie um backup complete do DB com mysqldump –u root –p --all-databases --master-data > dump.sql. Este comando irá bloquear a gravação nas tabelas até que o dump termine para evitar inconsistência.
- Envie para o segundo servidor master (MySQL-2) com scp dump.sql :
No servidor mysql-2 (O novo servidor que se tornará master)
- Edite o arquivo my.cnf (/etc/mysql/my.cnf em instalações padrões)
- Altere as linhas
/etc/mysql/my.cnf
bind-addres = 127.0.0.1 ... #server-id = 1 #log-bin = /var/log/mysql/mysql-bin.log |
Para
/etc/mysql/my.cnf
bind-addres = 0.0.0.0 #Ou adicione o IP do seu segundo servidor Master ... expire_logs_days = 5 #Dias de retenção do log server- id =2 #Descomente e Altere o IP. É muito importe que ele tenha um id diferente do MySQL-1. slave_compressed_protocol = 1 #Protocolo de compressão binlog_format = row log-bin = /var/log/mysql/mysql-bin .log #Apenas Descomente |
- Reinicie o servidor;
- Entre no mysql (mysql –u root –p)
- Aponte quem será o máster com o comando CHANGE MASTER TO MASTER_HOST=’192.168.0.1’, MASTER_USER=’repl’, MASTER_PASSWORD=’repl’;
- Substitua o IP do máster, usuário e senha pelas criadas no seu servidor máster.
- Pare o servidor slave com o comando: stop slave;
- Saia do mysql (\q);
- Importe o DUMP feito anteriormente com mysql –u root –p
- Entre no mysql (mysql –u root –p)
- Digite o comando start slave para iniciar a replicação.
- Pode-se verificar erros com o comando SHOW SLAVE STATUS\G
- Teste a replicação, crie uma tabela no MySQL-1 e veja se a tabela também será criada no MySQL-2.