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:

  1. Edite o arquivo my.cnf (/etc/mysql/my.cnf em instalações padrões)
  2. 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 logserver-id = 1 #Apenas descomenteslave_compressed_protocol #Protocolo de compressãobinlog_format = rowlog-bin = /var/log/mysql/mysql-bin.log #Apenas Descomente
  1. Reinicie o servidor;
  2. Entre no mysql (mysql –u root –p)
    1. Crie um usuário de replica com GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’ IDENTIFIED BY ‘repl’;
    2. Saia do mysql (\q);
    3. 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.
    4. Envie para o segundo servidor master (MySQL-2) com scp dump.sql :

No servidor mysql-2 (O novo servidor que se tornará master)

  1. Edite o arquivo my.cnf (/etc/mysql/my.cnf em instalações padrões)
  2. 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 logserver-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ãobinlog_format = rowlog-bin = /var/log/mysql/mysql-bin.log #Apenas Descomente
  1. Reinicie o servidor;
  2. Entre no mysql (mysql –u root –p)
    1. Aponte quem será o máster com o comando CHANGE MASTER TO MASTER_HOST=’192.168.0.1’, MASTER_USER=’repl’, MASTER_PASSWORD=’repl’;
    2. Substitua o IP do máster, usuário e senha pelas criadas no seu servidor máster.
    3. Pare o servidor slave com o comando: stop slave;
    4. Saia do mysql (\q);
    5. Importe o DUMP feito anteriormente com mysql –u root –p
    6. Entre no mysql (mysql –u root –p)
      1. Digite o comando start slave para iniciar a replicação.
      2. Pode-se verificar erros com o comando SHOW SLAVE STATUS\G
      3. Teste a replicação, crie uma tabela no MySQL-1 e veja se a tabela também será criada no MySQL-2.


Por favor, aguarde!

Por favor aguarde... vai levar um segundo!