A replicação de dados é o processo de copiar seus dados em vários servidores para melhorar a disponibilidade dos dados e aprimorar a confiabilidade e o desempenho de um aplicativo. Em MySQL replicação, os dados são copiados de um banco de dados do servidor mestre para outros nós em tempo real para garantir a consistência dos dados e também para fornecer backup e redundância.
Neste guia, demonstramos como você pode configurar o MySQL (Mestre-Escravo ) replicação em distribuições baseadas em RHEL, como CentOS , Fedora , Rocky Linux, e AlmaLinux .
Configuração de replicação MySQL
Então, aqui está nosso MySQL configuração do laboratório de replicação.
MySQL Master - 10.128.0.14 MySQL Slave - 10.128.15.211
Vamos começar…
Etapa 1:instale o MySQL no servidor mestre e escravo
Começaremos instalando o MySQL banco de dados no mestre e escravo servidores.
$ sudo dnf install @mysql
Quando a instalação estiver concluída, faça questão de iniciar o servidor de banco de dados.
$ sudo systemctl start mysqld
Em seguida, habilite-o para iniciar a inicialização do sistema ou na reinicialização.
$ sudo systemctl enable mysqld
Em seguida, confirme se o MySQL servidor de banco de dados está sendo executado conforme mostrado:
$ sudo systemctl status mysqld
Etapa 2:proteger o MySQL no servidor mestre e escravo
A próxima etapa é proteger o MySQL banco de dados no mestre e escravo servidores. Isso ocorre porque as configurações padrão são inseguras e apresentam algumas brechas que podem ser facilmente exploradas por hackers.
Então, para fortalecer o MySQL, execute o comando:
$ sudo mysql_secure_installation
Primeiro, você precisará definir o MySQL senha raiz. Certifique-se de fornecer uma senha de root forte, de preferência com mais de 8 caracteres que são uma mistura de caracteres maiúsculos, minúsculos, especiais e numéricos.
Para os prompts restantes, digite
'Y'
para ajustar o servidor de banco de dados para as configurações recomendadas. Depois de instalar e proteger o MySQL no nó mestre e escravo, o próximo é configurar o nó mestre.
Etapa 3:configurar o nó mestre (servidor)
A próxima etapa é configurar o Mestre nó e conceda o escravo nó de acesso a ele. Primeiro, precisamos editar o mysql-server.cnf arquivo de configuração.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Adicione as seguintes linhas sob o
[mysqld]
seção. bind-address = 10.128.0.14 server-id = 1 log_bin = mysql-bin
Feito isso, salve as alterações e saia. Em seguida, reinicie o MySQL servidor.
$ sudo sysemctl restart mysqld
Em seguida, faça login no MySQL Concha.
$ sudo mysql -u root -p
Execute os comandos a seguir para criar um usuário de banco de dados que será usado para vincular o mestre e o escravo para replicação.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]'; mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';
Aplique as alterações e saia do MySQL servidor.
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Verifique o status do mestre.
mysql> SHOW MASTER STATUS\G
Anote o nome do arquivo e a posição. Você precisará disso mais tarde ao configurar o escravo para replicação. No nosso caso, temos o nome do arquivo como
mysql-bin.000001
e Posição 1232 . Etapa 4:configurar o nó escravo (servidor)
Agora, volte para o nó Slave. Mais uma vez, edite o mysql-server.cnf arquivo de configuração.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Como antes, cole estas linhas sob o
[mysqld]
seção. Altere o endereço IP para corresponder ao IP do escravo. Além disso, atribua um server-id diferente . Aqui atribuímos o valor de 2 . bind-address = 10.128.15.211 server-id = 2 log_bin = mysql-bin
Salve as alterações e saia do arquivo. Em seguida, reinicie o servidor de banco de dados.
$ sudo systemctl restart mysqld
Para configurar o Escravo node para replicar a partir do node Master, faça login no servidor MySQL do Slave.
$ sudo mysql -u root -p
Em primeiro lugar, interrompa os threads de replicação:
mysql> STOP SLAVE;
Em seguida, execute o seguinte comando para configurar o nó escravo para replicar bancos de dados do mestre.
mysql> CHANGE MASTER TO MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=1232;
Observe que o MASTER_LOG_FILE e MASTER_LOG_POS sinalizadores correspondem ao arquivo e à Posição valores do Mestre nó no final da Etapa 1.
O MASTER_HOST , MASTER_USER, e MASTER_PASSWORD correspondem ao endereço IP mestre, ao usuário de replicação e à senha do usuário de replicação, respectivamente.
Em seguida, inicie os threads de replicação slave:
mysql> START SLAVE;
Etapa 4:testando a replicação mestre-escravo do MySQL
Agora, para testar se a replicação entre o nó mestre e o nó escravo está funcionando, faça login no servidor de banco de dados MySQL no nó mestre:
$ sudo mysql -u root -p
Crie um banco de dados de teste. Aqui, nosso banco de dados de teste é chamado de replication_db .
mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;
Agora, vá para o nó escravo, faça login no servidor MySQL e confirme se o replication_db banco de dados está presente. A partir da saída abaixo, podemos ver que o banco de dados está presente. Esta é a confirmação de que a replicação ocorreu do nó mestre para o nó escravo.
mysql> SHOW DATABASES;
E é isso, demonstramos com sucesso como você pode configurar um MySQL modelo de replicação mestre-escravo que pode replicar bancos de dados do nó mestre para o nó escravo.