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 .