Setup MySQL Master-Slave Replication no Debian / Ubuntu

Você está aqui:
Tempo estimado de leitura: 1 min

Introdução

Quando você está executando um site crítico, é importante certificar-se de que você tenha pelo menos um servidor de backup redundante. Isso garante que seu banco de dados esteja sincronizando em tempo real. MySQL refere-se à sincronização de banco de dados como replicação. Este breve tutorial fornece instruções sobre como configurar uma replicação MySQL master-slave.

Configurar o nó mestre

Edite /etc/mysql/my.cnfpara desativar a ligação IP.

Comente as seguintes linhas:

bind-address = 127.0.0.1
skip-networking

Crie novas configurações para replicação executando os seguintes comandos:

cat >/etc/mysql/conf.d/replication.cnf <<EOF
[mysqld]
server-id = 100
log_bin = /var/log/mysql/mysql-bin.log
binlog-do-db = YOUR_DATABASE_ONE
binlog-do-db = YOUR_DATABASE_TWO
EOF

Reinicie o servidor MySQL.

/etc/init.d/mysql restart

Crie um usuário escravo no MySQL executando os seguintes comandos no console do MySQL.

CREATE USER 'slave'@'SLAVE_SERVER_IP_ADDRESS' identified by 'YOUR_SLAVE_PASSWORD';
GRANT ALL ON *.* TO 'slave'@'SLAVE_SERVER_IP_ADDRESS';
FLUSH PRIVILEGES;

Agora, bloqueie o acesso de gravação ao seu banco de dados:

FLUSH TABLES WITH READ LOCK;

Obter o status do nó principal:

SHOW MASTER STATUS;

Nota: Anote os valores dos campos “Arquivo” e “Posição”, pois precisaremos referenciá-los posteriormente para o nó escravo.

Abra outra sessão SSH e despeje seu banco de dados usando o seguinte comando:

mysqldump -u MYSQL_USERNAME -pMYSQL_PASSWORD --databases YOUR_DATABASE_ONE YOUR_DATABASE_TWO > database.sql

Retorne à sessão anterior do SSH e emita o seguinte comando no console do MySQL para desbloquear o acesso de gravação:

UNLOCK TABLES;

Transferir o database.sqlcriado no passo anterior para o nó escravo.

Configurar o nó escravo

Edite /etc/mysql/my.cnfpara desativar a ligação IP.

Comente as seguintes linhas:

bind-address = 127.0.0.1
skip-networking

Crie novas configurações para replicação executando o seguinte comando:

cat >/etc/mysql/conf.d/replication.cnf <<EOF
[mysqld]
server-id = 101
log_bin = /var/log/mysql/mysql-bin.log
binlog-do-db = YOUR_DATABASE_ONE
binlog-do-db = YOUR_DATABASE_TWO
EOF

Reinicie o servidor MySQL.

/etc/init.d/mysql restart

Importe database.sqlcriado a partir do nó mestre agora usando este comando:

mysql -u MYSQL_USERNAME-pMYSQL-PASSWORD < database.sql

Agora, vamos começar a replicação. Abra o console do MySQL, execute os seguintes comandos:

SLAVE STOP;
CHANGE MASTER TO MASTER_HOST='MASTER_SERVER_IP_ADDRESS', MASTER_USER='slave', MASTER_PASSWORD='YOUR_SLAVE_PASSWORD', MASTER_LOG_FILE='FILE_VALUE_FROM_MASTER', MASTER_LOG_POS=POSITION_VALUE_FROM_MASTER;
SLAVE START;

Nota: O valor para MASTER_LOG_FILEMASTER_LOG_POSé “Arquivo” e “Posição” que anotamos da configuração do nó mestre.

Esse artigo foi útil?
Não Gostei 0
Visualizações: 52

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?