Como configurar a replicação do MySQL Master-Master

Como configurar a replicação do MySQL Master-Master

A replicação do MySQL Master-Slave é configurar o Slave Server para atualizar imediatamente assim que as alterações feitas no servidor mestre. Mas não atualizará o mestre se houver alguma alteração feita no servidor escravo. Leia este artigo para configurar a replicação do escravo mestre.

Este artigo ajudará você a configurar a replicação mestre-mestre entre servidores MySQL. Nesta configuração, se alguma alteração feita em qualquer servidor será atualizada em outro.

Detalhes da configuração:
Master-1: 192.168.1.15 Master-2: 192.168.1.16 banco de dados: mydb 

Se você estiver usando versões diferentes - diferentes do MySQL em ambos os servidores, use este link para verificar a compatibilidade.

Passo 1. Configure o servidor MySQL Master-1

  • Edite o arquivo de configuração do MySQL e adicione as seguintes linhas na seção [MySQLD].
  • # vim /etc /meu.CNF 
    [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1 
  • Reinicie o servidor MySQL para as alterações entram em vigor.
  • # Serviço MySqld Reiniciar 
  • Crie uma conta MySQL no servidor Master-1 com privilégios de escravos de replicação aos quais o cliente de replicação se conectará ao Master.
  • MySQL> Grant Replicação Slave On *.* Para 'repl_user'@'%' identificado por 'secretPassword'; mysql> privilégios de descarga; 
  • Declaração de gravação em bloco em todas as tabelas, para que nenhuma alteração possa ser feita após o backup.
  • mysql> use mydb; MySQL> FLOW TABLES COM READ LOCK; 
  • Verifique o nome atual do arquivo de log binário (arquivo) e o valor do deslocamento atual (posição) usando o seguinte comando.
  • MySQL> Mostrar status mestre; +------------------+----------+--------------+------------------+ | Arquivo | Posição | Binlog_do_db | Binlog_ignore_db | +--------------------+----------+--------------+---- --------------+ | mysql-bin.000003 | 332 | mydb | | +--------------------+----------+--------------+---- --------------+ 1 linha no conjunto (0.00 seg) 

    A saída acima está mostrando que o arquivo binário atual está usando mysql-bin.000003 e o valor de deslocamento é 332. Anote esses valores a serem usados ​​no servidor Master-2 na próxima etapa.

  • Faça um backup de banco de dados e copie -o para outro servidor MySQL.
  • # mysqldump -u root -p mydb> mydb.sql # scp mydb.SQL 192.168.1.16:/Opt/ 
  • Depois de concluir o backup, remova o bloqueio de leitura das tabelas, para que as alterações possam ser feitas.
  • MySQL> Tabelas de desbloqueio; 

    Passo 2. Configurar o servidor MySQL Master-2

  • Editar arquivo de configuração MySQL Master-2 e adicione os seguintes valores na seção [MySQLD].
  • # vim /etc /meu.CNF 
    [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1 

    servidor-id sempre é um valor numérico não zero. Esses valor nunca serão semelhantes com outros servidores mestre ou escravo.

  • Reinicie o servidor MySQL, se você já tivesse configurado a replicação, use -skip-slave-start no início para não se conectar imediato ao servidor mestre.
  • # Serviço MySqld Reiniciar 
  • Restaurar o backup do banco de dados retirado do servidor mestre.
  • # mysql -u root -p mydb < /opt/mydb.sql 
  • Crie uma conta MySQL no servidor Master-1 com privilégios de escravos de replicação aos quais o cliente de replicação se conectará ao Master.
  • MySQL> Grant Replicação Slave On *.* Para 'repl_user'@'%' identificado por 'secretPassword'; mysql> privilégios de descarga; 
  • Verifique o nome atual do arquivo de log binário (arquivo) e o valor do deslocamento atual (posição) usando o seguinte comando.
  • MySQL> Mostrar status mestre; +------------------+----------+--------------+------------------+ | Arquivo | Posição | Binlog_do_db | Binlog_ignore_db | +--------------------+----------+--------------+---- --------------+ | mysql-bin.000001 | 847 | mydb | | +--------------------+----------+--------------+---- --------------+ 1 linha no conjunto (0.00 seg) 

    A saída acima está mostrando que o arquivo binário atual está usando mysql-bin.000001 e o valor de deslocamento é 847. Anote esses valores a serem usados ​​na etapa 3.

  • Valores da opção de configuração no servidor escravo usando o seguinte comando.
  • mysql> Alterar mestre para master_host = "192.168.1.15 ", -> master_user =" repl_user ", -> master_password =" secretPassword ", -> master_log_file =" mysql -bin.000003 ", -> master_log_pos = 332; 

    Etapa 3: Configuração completa no MySQL Master-1

    Faça login no servidor MySQL Master-1 e execute o seguinte comando.

    mysql> Alterar mestre para master_host = "192.168.1.16 ", master_user =" repl_user ", master_password =" secretPassword ", master_log_file =" mysql-bin.000001 ", master_log_pos = 847; 
    Etapa 4: Inicie o escravo nos dois servidores

    Execute o seguinte comando em ambos os servidores para iniciar o processo de escravo de replicação.

    MySQL> Start Start; 

    A replicação do MySQL Master-Master foi configurada com sucesso no seu sistema e no modo de trabalho. Para testar se a replicação está funcionando, faça alterações no servidor e verifique se as alterações estão refletindo sobre outro servidor.

    Obrigado por usar este tutorial, se for útil para você, por favor, não se esqueça de compartilhar com seus amigos.