Android

Como configurar o mysql (mariadb) master

REPLICAÇÃO DE BANCO DE DADOS MASTER-MASTER (DEBIAN + MYSQL 5.5)

REPLICAÇÃO DE BANCO DE DADOS MASTER-MASTER (DEBIAN + MYSQL 5.5)

Índice:

Anonim

A replicação do MySQL é um processo de cópia de dados de um servidor de banco de dados (mestre) para um ou mais servidores (escravos).

O MySQL suporta várias topologias de replicação, com a topologia Master / Slave sendo uma das topologias mais conhecidas nas quais um servidor de banco de dados atua como mestre, enquanto um ou mais servidores atuam como escravos. Por padrão, a replicação é assíncrona, onde o mestre envia eventos que descrevem as modificações do banco de dados em seu log binário e os escravos solicitam os eventos quando estão prontos.

Neste guia, mostraremos como configurar a replicação MariaDB Master / Slave com um servidor mestre e um servidor escravo no Debian 10. O MariaDB é a implementação padrão do MySQL no Debian. As mesmas etapas se aplicam ao Oracle MySQL.

Esse tipo de topologia de replicação é mais adequado para a implantação de réplicas de leitura para escala de leitura, backup de bancos de dados ao vivo para recuperação de desastres e para tarefas de análise.

Pré-requisitos

Estamos assumindo que você tem dois servidores executando o Debian 10, se comunicando através de uma rede privada. Se o seu provedor de hospedagem não suportar endereços IP privados, você poderá usar os endereços IP públicos e configurar o firewall para permitir o tráfego na porta 3306 apenas de fontes confiáveis.

Os servidores usados ​​neste exemplo têm os seguintes endereços IP:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

Instalando o MariaDB

O padrão Os repositórios Debian 10 incluem o MariaDB versão 10.3. É melhor instalar a mesma versão do MariaDB nos dois servidores para evitar possíveis problemas.

Instale o MariaDB no mestre e no escravo emitindo os seguintes comandos:

sudo apt-get update sudo apt-get install mariadb-server

Configurando o servidor mestre

O primeiro passo é configurar o servidor principal. Faremos as seguintes alterações:

  • Defina o servidor MariaDB para escutar no IP privado. Defina um ID de servidor exclusivo.

Abra o arquivo de configuração MariaDB e remova o comentário ou defina as seguintes linhas:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf master: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

Depois de feito, salve o arquivo e reinicie o serviço MySQL para que as alterações entrem em vigor:

sudo systemctl restart mariadb

A próxima etapa é criar um novo usuário de replicação. Efetue login no servidor MariaDB como usuário raiz:

sudo mysql

Execute as seguintes consultas SQL para criar um usuário chamado replica e conceda o privilégio REPLICATION SLAVE ao usuário:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; Certifique-se de alterar o IP com o seu endereço IP escravo. Você pode nomear o usuário como desejar.

Ainda dentro do prompt do MySQL, execute o seguinte comando que imprimirá o nome do arquivo binário e a posição.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

Anote o nome do arquivo 'mysql-bin.000001' e a posição '328'. Esses valores são necessários ao configurar o servidor escravo e provavelmente serão diferentes no seu servidor.

Configurando o servidor escravo

Faremos as mesmas alterações no servidor escravo que as do mestre:

  • Configure o servidor MySQL para escutar no IP privado. Defina um ID de servidor exclusivo. Habilite o log binário.

Abra o arquivo de configuração MariaDB e edite as seguintes linhas:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf escravo: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

Reinicie o serviço MariaDB:

sudo systemctl restart mariadb

A próxima etapa é configurar os parâmetros que o servidor escravo usará para se conectar ao servidor mestre. Efetue login no shell do MariaDB:

sudo mysql

Comece parando os encadeamentos escravos:

STOP SLAVE;

Execute a seguinte consulta para configurar a replicação mestre / escravo:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

Verifique se você está usando o endereço IP, nome de usuário e senha corretos. O nome e a posição do arquivo de log devem ser os mesmos que você obteve no servidor principal.

Depois de concluído, inicie os encadeamentos escravos.

START SLAVE;

Teste a configuração

Neste ponto, você deve ter uma configuração de replicação mestre / escravo funcionando.

Para verificar se tudo está configurado corretamente, crie um novo banco de dados no servidor mestre:

sudo mysql

CREATE DATABASE replicatest;

Entre no shell MySQL escravo:

sudo mysql

Execute o seguinte comando para listar todos os bancos de dados:

SHOW DATABASES;

Você observará que o banco de dados que você criou no servidor mestre é replicado no escravo:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Conclusão

Neste tutorial, mostramos que você cria uma replicação MariaDB Master / Slave no Debian 10.

Sinta-se livre para deixar um comentário se tiver alguma dúvida.

debian mysql mariadb