Pular para o conteúdo

Replicação em banco de dados MySQL

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.
Marcelo Santos Araujo gatecrasher
Hits: 107.484 Categoria: Banco de Dados Subcategoria: MySQL
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Configuração do my.cnf no servidor

Com o MySQL daemon instalado (mysqld) e o respectivo cliente, copie o arquivo de configuração do MySQL que por padrão fica localizado em /usr/share/mysql.

Suponha que sua máquina suporte uma configuração média, então copie o my-medium.cnf para o diretório /etc/ renomeando o arquivo para my.cnf.

Caso sua máquina não suporte uma configuração média, então copie o arquivo my-small.cnf para o /etc. Você deverá ter o arquivo my.cnf no /etc.

Nesta parte, iremos configurar o servidor master. Pare o servidor mysqld, pois você estará alterando o seu arquivo de configuração:

# service mysql stop
ou
# /etc/init.d/mysql stop

Abra o arquivo my.cnf em qualquer editor de texto:

# jed my.cnf

Descomente as linhas dos logs ou então acrescente as seguintes palavras-chaves na seção "[mysqld]"

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
[mysqld]

log-bin
log
log-slow
log-slave-updates

Isso irá habilitar os logs binários e os demais, além dos logs de atualização. Salve o arquivo.

Agora inicie o MySQL daemon (mysqld):

# service mysql start
ou
# /etc/init.d/mysql start

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Configuração do my.cnf no servidor
   2. Criando um usuário slave
   3. Configuração do my.cnf slave
   4. Processo de replicação

Expressões regulares no PHP

Blindando o MySQL: Configurações de segurança

Sqlite Manager - Plugin do Firefox para criação e manipulação SQL

Gerenciando banco de dados com MySQL (parte 2)

Resolva Problemas com o MySQL Workbench no Linux Mint 21.1

Instalação e configuração do MySQL com phpMyAdmin no CentOS - Iniciantes

#1 Comentário enviado por gustavo_marcon em 23/02/2004 - 15:10h
Muito bom este artigo. Só fiquei c/ uma dúvida, todos os bancos de dados registrados no servidor A serão automaticamente replicados na máquina B?
#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.

[]'s
#3 Comentário enviado por wilbil em 23/02/2004 - 17:05h
e bom lembrar que nao he pq vc tem um banco de dados replicado
que vc tem um sistema HA

lembrese se cair o serv A
o B so sera os backups sua rede contunuara sem mysql

tome cuidado na hora de implementar isso e sempre bom aprender como vc pode

transformar seu servidor slave em master
depois que vc arrumas o master o que vai acontecer quando entrarem os dois ao mesmo tempo

replicacao nao he HA
#4 Comentário enviado por mrluk em 23/02/2004 - 18:31h
o q eh HA, wilbil?
#5 Comentário enviado por jeffestanislau em 26/02/2004 - 18:55h
fiquei na dúvida como o mrluk, diz aí wilbil?
#6 Comentário enviado por wilbil em 22/09/2004 - 00:30h
HA = hight aplication

quando o mysql servidor cair o slave nao se inicia sozinho
e ocupa seu lugar
#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.

[]'s

Daniel Freire
#8 Comentário enviado por guigol em 23/05/2006 - 11:21h
Pessoal depois de muitas tentativas com o Slackware 10.2 descobri que no /etc/rc.d/rc.mysqld ele inicia por padrão com a opção:

SKIP="--skip-networking"

Resultando em não abrir a porta 3306 para acesso externo e/ou replicação das bases. É só tirar esta opção que ele abre as portas.

T+

Guilherme Guerreiro

#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..

Abraços,
Marcos Echevarria
#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 ?


Att : Franciney Souza

Contribuir com comentário

Entre na sua conta para comentar.