Este artigo nos mostra como configurar dois servidores com MySQL atuando como master e slave para replicação de banco de dados. Em outras palavras, tudo o que acontece no servidor MySQL master acontecerá no MySQL slave.
Uma vez que temos o servidor e o cliente configurados, entre no
servidor cliente e digite:
$ mysql -uleitor -pleitor
mysql> SLAVE START;
mysql> SHOW SLAVE STATUS;
No resultado do comando acima, procure por dois "YES" escritos em
Slave I/O e Slave SQL. Caso os YES apareçam, o processo de
replicação está funcionando!
Agora peça a lista de banco de dados:
mysql> SHOW DATABASES;
A base "replicacao" deverá aparecer.
Caso queira ver o mecanismo de replicação, crie uma tabela no
master do tipo:
CREATE TABLE replica (
id int(3) not null default ''
);
INSERT INTO replica VALUES (1);
Agora vá ao servidor slave e dê um SELECT na tabela
replicacao.replica:
mysql> USE replicacao;
mysql> SELECT * FROM replicacao.replica;
Você deverá ver o conteúdo dos inserts que você deu na tabela no
servidor master, portanto a replicação foi efetuada.
Comandos importantes:
SHOW SLAVE STATUS;
SLAVE START;
SLAVE STOP;
Não se esqueça:
No my.cnf master, habilitar os logs: log, log-bin, log-slave-updates e definir uma identificação única para a máquina: server-id=1.
No my.cnf slave, definir: master-user, master-password, master-host e identificação única: server-id=2.
Esquema da replicação
MASTER -----> SLAVE
IP (XXX.XXX.XX.XXX, por exemplo) (conexão por servidores mysqld)
[2] Comentário enviado por fabio em 23/02/2004 - 15:24h
Bom, me intrometendo, há como você escolhor no slave quais databases serão replicadas, para isso basta definir o parâmetro replicate-do-db na seção [mysqld] do my.conf slave:
replicate-do-db=meu_database1
Se quiser mais de um, basta ir adicionando as demais databases separadas por vírgula.
[7] Comentário enviado por alphainfo em 08/10/2004 - 00:41h
Ow galera,
o ponto levantado pelo wilbil é mto interessante! Esse esquema de replicar bancos confunde mto a galera, pq a primeira vista pensamos que o slave irá assumir na queda do master.
Estamos tentando implementar uma solução de Master/Slave aliada a solução de Alta disponibilidade (HA).
Assim que conseguirmos, postarei aqui no VOL um artigo sobre.
[9] Comentário enviado por marcosge em 12/06/2006 - 00:01h
Bom pessoal, teoricamente eu consegui fazer tudo q se pede nesse artigo, mas eu não consigo ver as bases do master, estranho é que eu dou um show slave status no slave e ele me mostra os 2 yes. O que vocês poderiam me dizer?? será que estou esquecendo de algo??
Lembrando que criei o usuário slave, alterei os dois my.cnf..
[10] Comentário enviado por rhowmert em 27/07/2006 - 09:43h
Opa! Blz galera? Bom gente minha duvida é a seguinte. esta replicação pode até funcionar no caso do servidor travar ou sua conexão cair. Agora vamos supor que meu hd esteja com pau e esteja gravando na dados corrompidos. Esses dados serão replicados assim?
Tipo assim, teoricamente o mysql deveria armazenar em uma memória RAM e depois gravar os dados nos discos tanto dos master qto do slave.
Mas será que isso acontece? ou ele grava em um disco e depois copia pro outro?
[11] Comentário enviado por removido em 17/11/2008 - 09:29h
Bom dia gatecrasher! Eu gostaria de saber se essa replicação é feita em todas as databases do mysql ou apenas uma. Caso seja em apenas uma, sabe me dizer como posso fazer em várias?
[12] Comentário enviado por franciney em 15/10/2012 - 16:42h
Ola ,meu caro , neceesito de sua ajuda , andei verificando no mysqle vi os seguintes arquivos de configuração no /usr/share/mysqld :
config.hug.ini
config.medium.ini
config.small.ini
Gostaria de saber se é destes arquivos que vc esta falando , e tambem gostaria de saber se relmente tenho de leva-los para o /etc , pois o arquivo my.cnf esta no /etc/mysql ?