Banco de Dados · 3 min read · Dec 23, 2025

Como Configurar Replicação de Banco de Dados No MySQL

Este é um “copiar e colar” Como Fazer!

A maneira mais fácil de seguir este tutorial é usar um cliente de linha de comando/clientes SSH (como

PuTTY

para Windows) e simplesmente copiar e colar os comandos (exceto onde você deve fornecer suas próprias informações, como endereços IP, nomes de host, senhas,…). Isso ajuda a evitar erros de digitação.

Como Configurar Replicação de Banco de Dados No MySQL

Versão 1.1
Autor: Falko Timme
Última edição: 14/01/2006

Este tutorial descreve como configurar a replicação de banco de dados no MySQL. A replicação do MySQL permite que você tenha uma cópia exata de um banco de dados de um servidor mestre em outro servidor (escravo), e todas as atualizações no banco de dados no servidor mestre são imediatamente replicadas para o banco de dados no servidor escravo, de modo que ambos os bancos de dados estejam sincronizados. Esta não é uma política de backup porque um comando DELETE emitido acidentalmente também será executado no escravo; mas a replicação pode ajudar a proteger contra falhas de hardware.

Neste tutorial, mostrarei como replicar o banco de dados exampledb do mestre com o endereço IP 192.168.0.100 para um escravo. Ambos os sistemas (mestre e escravo) estão executando Debian Sarge; no entanto, a configuração deve se aplicar a quase todas as distribuições com pouca ou nenhuma modificação.

Ambos os sistemas têm o MySQL instalado, e o banco de dados exampledb com tabelas e dados já existe no mestre, mas não no escravo.

Quero dizer primeiro que esta não é a única maneira de configurar tal sistema. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!

1 Configurar O Mestre

Primeiro, precisamos editar /etc/mysql/my.cnf. Precisamos habilitar a rede para o MySQL, e o MySQL deve escutar em todos os endereços IP, portanto, comentamos essas linhas (se existirem):

| #skip-networking #bind-address = 127.0.0.1 |

Além disso, precisamos informar ao MySQL para qual banco de dados ele deve escrever logs (esses logs são usados pelo escravo para ver o que mudou no mestre), qual arquivo de log ele deve usar, e precisamos especificar que este servidor MySQL é o mestre. Queremos replicar o banco de dados exampledb, então colocamos as seguintes linhas em /etc/mysql/my.cnf:

| log-bin = /var/log/mysql/mysql-bin.log binlog-do-db=exampledb server-id=1 |

Então, reiniciamos o MySQL:

/etc/init.d/mysql restart

Em seguida, fazemos login no banco de dados MySQL como root e criamos um usuário com privilégios de replicação:

mysql -u root -p
Digite a senha:

Agora estamos no shell do MySQL.

GRANT REPLICATION SLAVE ON . TO ‘slave_user’@’%’ IDENTIFIED BY ‘’; (Substitua por uma senha real!)
FLUSH PRIVILEGES;

Em seguida (ainda no shell do MySQL), faça isso:

USE exampledb;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

O último comando mostrará algo como isto:

| +---------------+----------+--------------+------------------+ | File | Position | Binlog_do_db | Binlog_ignore_db | +---------------+----------+--------------+------------------+ | mysql-bin.006 | 183 | exampledb | | +---------------+----------+--------------+------------------+ 1 row in set (0.00 sec) |

Anote essas informações, precisaremos delas mais tarde no escravo!

Então saia do shell do MySQL:

quit;


Existem duas possibilidades para obter as tabelas e dados existentes do exampledb do mestre para o escravo. A primeira é fazer um dump do banco de dados, a segunda é usar o comando LOAD DATA FROM MASTER; no escravo. A última tem a desvantagem de que o banco de dados no mestre ficará bloqueado durante essa operação, então se você tiver um banco de dados grande em um sistema de produção de alto tráfego, isso não é o que você deseja, e eu recomendo seguir o primeiro método nesse caso. No entanto, o último método é muito rápido, então descreverei ambos aqui.

Se você quiser seguir o primeiro método, então faça isto:

mysqldump -u root -p –opt exampledb > exampledb.sql (Substitua pela senha real do usuário MySQL root! Importante: Não há espaço entre -p e !)

Isso criará um dump SQL de exampledb no arquivo exampledb.sql. Transfira este arquivo para o seu servidor escravo!

Se você quiser seguir o caminho do LOAD DATA FROM MASTER;, então não há nada que você precise fazer agora.


Finalmente, precisamos desbloquear as tabelas em exampledb:

mysql -u root -p
Digite a senha:
UNLOCK TABLES;
quit;

Agora a configuração no mestre está concluída. Vamos para o escravo…

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.