Android

Como configurar o mysql master

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

How To Configure MySQL Master-Slave Replication on Ubuntu 18.04

Índice:

Anonim

A replicação do MySQL é um processo que permite que os dados de um servidor de banco de dados sejam copiados automaticamente para um ou mais servidores.

O MySQL suporta várias topologias de replicação, sendo a topologia Master / Slave 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.

Este tutorial aborda um exemplo básico de replicação Master / Slave do MySQL com um servidor mestre e um servidor escravo no Ubuntu 18.04. As mesmas etapas se aplicam ao MariaDB.

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 em tempo real para recuperação de desastre e trabalhos de análise.

Pré-requisitos

Este exemplo supõe que você tenha dois servidores executando o Ubuntu 18.04, que podem se comunicar através de uma rede privada. Se o seu provedor de hospedagem não oferecer 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 neste exemplo têm os seguintes IPs:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

Instale o MySQL

O padrão Os repositórios do Ubuntu 18.04 incluem o MySQL versão 5.7. Para evitar problemas, é melhor instalar a mesma versão do MySQL nos dois servidores.

Instale o MySQL no servidor mestre:

sudo apt-get update sudo apt-get install mysql-server

Instale o MySQL no servidor escravo usando os mesmos comandos:

sudo apt-get update sudo apt-get install mysql-server

Configure o servidor mestre

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

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

Para fazer isso, abra o arquivo de configuração do MySQL e remova o comentário ou defina o seguinte:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf master: /etc/mysql/mysql.conf.d/mysqld.cnf

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

Uma vez feito, reinicie o serviço MySQL para que as alterações entrem em vigor:

sudo systemctl restart mysql

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

sudo mysql

De dentro do prompt do MySQL, execute as seguintes consultas SQL que criarão o usuário de replica e concederão o privilégio REPLICATION SLAVE ao usuário:

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

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; 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: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Anote o nome do arquivo 'mysql-bin.000001' e a posição '629'. Você precisará desses valores ao configurar o servidor escravo. Esses valores provavelmente serão diferentes no seu servidor.

Configurar o servidor escravo

Como no servidor mestre acima, faremos as seguintes alterações no servidor escravo:

  • Defina o servidor MySQL para escutar no IPS privado; defina um ID de servidor exclusivo

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

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf escravo: /etc/mysql/mysql.conf.d/mysqld.cnf

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

Reinicie o serviço MySQL:

sudo systemctl restart mysql

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

sudo mysql

Primeiro, pare os encadeamentos escravos:

STOP SLAVE;

Execute a seguinte consulta que configurará o escravo para replicar o mestre:

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

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 funciona como esperado, criaremos 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 MySQL Master / Slave.

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

ubuntu mysql mariadb