Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como configurar a replicação do 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 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.