Pesquisa de site

Como configurar a replicação MySQL no RHEL, Rocky e AlmaLinux


A replicação de dados é o processo de copiar seus dados em vários servidores para melhorar a disponibilidade dos dados e aumentar a confiabilidade e o desempenho de um aplicativo. Na replicação MySQL, 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 a replicação MySQL (Master-Slave) em distribuições baseadas em RHEL, como CentOS, Fedora, Rocky Linux e AlmaLinux.

Configuração de replicação MySQL

Então, aqui está a configuração do laboratório de replicação do MySQL.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Vamos começar…

Etapa 1: Instale o MySQL no servidor Master e Slave

Começaremos instalando o banco de dados MySQL nos servidores master e slave.

sudo dnf install @mysql

Assim que a instalação for concluída, inicie o servidor de banco de dados.

sudo systemctl start mysqld

Em seguida, habilite-o para iniciar a inicialização do sistema ou após a reinicialização.

sudo systemctl enable mysqld

Depois disso, confirme se o servidor de banco de dados MySQL está funcionando conforme mostrado:

sudo systemctl status mysqld

Etapa 2: MySQL seguro no servidor mestre e escravo

A próxima etapa é proteger o banco de dados MySQL nos servidores mestre e escravo. Isso ocorre porque as configurações padrão são inseguras e apresentam algumas lacunas que podem ser facilmente exploradas por hackers.

Então, para proteger o MySQL, execute o comando:

sudo mysql_secure_installation

Primeiro, você será solicitado a definir a senha root do MySQL. Certifique-se de fornecer uma senha de root forte, de preferência com mais de 8 caracteres que sejam 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 terminar de instalar e proteger o MySQL no nó mestre e no nó escravo, o próximo passo é configurar o nó mestre.

Etapa 3: Configurar o nó mestre (servidor)

A próxima etapa é configurar o nó Mestre e conceder ao nó escravo acesso a ele. Primeiro, precisamos editar o arquivo de configuração mysql-server.cnf.

sudo vim /etc/my.cnf.d/mysql-server.cnf

Adicione as seguintes linhas na seção [mysqld].

bind-address	 = 10.128.0.14
server-id 	 = 1
log_bin		 = mysql-bin

Uma vez feito isso, salve as alterações e saia. Em seguida, reinicie o servidor MySQL.

sudo sysemctl restart mysqld

Em seguida, faça login no shell MySQL.

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 'P@ssword321';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';

Aplique as alterações e saia do servidor MySQL.

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 mysql-bin.000001 e a posição 1232.

Etapa 4: Configurar o nó escravo (servidor)

Agora, volte para o nó Slave. Mais uma vez, edite o arquivo de configuração mysql-server.cnf.

sudo vim /etc/my.cnf.d/mysql-server.cnf

Como antes, cole estas linhas na seção [mysqld]. Altere o endereço IP para corresponder ao IP do escravo. Além disso, atribua um server-id diferente. Aqui atribuímos a ele o valor 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 nó Slave para replicar do nó 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='P@ssword321' ,
     MASTER_LOG_FILE='mysql-bin.000001' ,
     MASTER_LOG_POS=1232;

Observe que os sinalizadores MASTER_LOG_FILE e MASTER_LOG_POS correspondem aos valores de arquivo e Posição do nó Mestre no final do Passo 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 escravos:

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 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 banco de dados replication_db está presente. Na 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 modelo de replicação mestre-escravo MySQL que pode replicar bancos de dados do nó mestre para o nó escravo.