MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como configurar a replicação mestre-escravo do MySQL no Ubuntu 18.04


MySQL A replicação mestre-escravo é um procedimento que permite que arquivos de banco de dados sejam replicados ou copiados em um ou mais nós em uma rede. Essa configuração fornece redundância e tolerância a falhas, de modo que, em caso de falha no nó mestre , os bancos de dados ainda podem ser recuperados no nó Slave . Isso dá aos usuários a tranquilidade de que nem tudo será perdido em nenhuma eventualidade, pois uma réplica dos bancos de dados ainda pode ser recuperada de um servidor diferente.

Neste guia, você aprenderá como executar um MySQL banco de dados Mestre-escravo replicação em um Ubuntu 18.04 sistema.

Pré-requisitos


Na configuração, teremos dois servidores executando o Ubuntu 18.04 com os seguintes endereços IP.
Master server: 10.128.0.28
Slave server: 10.128.0.29

Vamos agora mergulhar e ver como podemos configurar o Master-slave configuração de replicação no Ubuntu .

Etapa 1:instalar o MySQL nos nós mestre e escravo


Ubuntu os repositórios contêm a versão 5.7 de MySQL . Para tirar proveito de quaisquer novos recursos e evitar possíveis problemas, você deve instalar a versão mais recente do MySQL. Mas primeiro, vamos atualizar os dois nós usando o seguinte comando apt.
$ sudo apt update

Para instalar o MySQL em ambos os nós, execute o comando.
$ sudo apt install mysql-server mysql-client

Em seguida, abra o mysql arquivo de configuração.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

No nó mestre , role e localize o bind-address atributo como mostrado abaixo.
bind-address 	 =127.0.0.1

Altere o endereço de loopback para corresponder ao endereço IP do nó mestre .
bind-address  	=10.128.0.28

Em seguida, especifique um valor para o server-id atributo no [mysqld] seção. O número escolhido não deve corresponder a nenhum outro número de ID do servidor. Vamos atribuir o valor 1 .
server-id	 =1

No final do arquivo de configuração, copie e cole as linhas abaixo.
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Saia do arquivo de configuração e reinicie o serviço MySQL para que as alterações entrem em vigor no nó mestre.
$ sudo systemctl restart mysql

Para verificar se o servidor MySQL está funcionando conforme o esperado, emita o comando.
$ sudo systemctl status mysql

Perfeito! O servidor MySQL está funcionando como esperado!

Etapa 2:criar um novo usuário para replicação no nó mestre


Nesta seção, vamos criar um usuário de replicação no nó mestre . Para conseguir isso, efetue login no servidor MySQL conforme mostrado.
$ sudo mysql -u root -p

Em seguida, prossiga e execute as consultas abaixo para criar um usuário de réplica e conceder acesso ao escravo de replicação. Lembre-se de usar seu endereço IP.
mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Em seguida, execute o seguinte comando.
mysql> SHOW MASTER STATUS\G

A saída deve ser semelhante ao que você pode ver abaixo.

Fique atento e observe o mysql-bin.000002 valor e o ID da posição 1643 . Esses valores serão cruciais ao configurar o servidor escravo .

Etapa 3:configurar o servidor MySQL Slave


Vá para o servidor escravo e, como fizemos com o servidor mestre , abra o arquivo de configuração do MySQL.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Assim como o servidor mestre , prossiga para editar as linhas a seguir.
bind-address           = 10.128.0.29

Como antes, especifique um valor para o server-id atributo no [mysqld] seção. Desta vez selecione um valor diferente. Vamos com 2 .
server-id		=2 

Novamente, cole as linhas abaixo no final do arquivo de configuração.
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Em seguida, reinicie o servidor MySQL no nó escravo.
$ sudo systemctl restart mysql

Uma vez feito, salve e saia do editor de texto

Em seguida, faça login no shell do MySQL, conforme mostrado.
$ sudo mysql -u root -p

Nesta etapa, você precisará fazer algumas configurações que permitirão que o servidor escravo para se conectar ao servidor mestre . Mas primeiro, pare os threads escravos como mostrado.
mysql> STOP SLAVE; 

Para permitir que o servidor escravo para replicar o servidor mestre , execute o comando.
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Se você estiver interessado o suficiente, observará que usamos o mysql-bin.00002 valor e ID de posição 1643 exibido anteriormente após a criação do usuário de replicação escravo.

Além disso, o endereço IP do servidor mestre, usuário de replicação e senha foram usados.

Mais tarde, inicie o thread que você parou anteriormente.
mysql> START SLAVE;

Etapa 4:verifique a replicação mestre-escravo do MySQL


Para verificar se a configuração está realmente funcionando conforme o esperado, vamos criar um novo banco de dados no mestre e verificar se ele foi replicado no servidor MySQL Slave.

Faça login no MySQL no servidor mestre .
$ sudo mysql -u root -p

Vamos criar um banco de dados de teste. Nesse caso, criaremos um banco de dados chamado replication_db .
mysql> CREATE DATABASE replication_db;

Agora, faça login na sua instância MySQL no servidor escravo .
$ sudo mysql -u root -p

Agora liste os bancos de dados usando a consulta.
mysql> SHOW DATABASES;

Você notará o banco de dados que criou no master foi replicado em escravo . Impressionante ! Sua replicação MySQL Master-slave está funcionando conforme o esperado! Agora você pode ter certeza de que, no caso de qualquer falha, as cópias dos arquivos do banco de dados serão replicadas para o servidor escravo.
Conclusão

Neste guia, você aprendeu como configurar um MySQL Master-slave configuração de replicação no Ubuntu 18.04 .