Estou executando a replicação do MySQL dual master e agora quero passar para um único banco de dados sem replicação. Como desabilito completamente a replicação nos dois bancos de dados?
Estou executando a replicação do MySQL dual master e agora quero passar para um único banco de dados sem replicação. Como desabilito completamente a replicação nos dois bancos de dados?
Respostas:
Para desativar completamente a replicação com uma configuração mestre-mestre, faça o seguinte em cada escravo:
STOP SLAVE;
RESET SLAVE;
(Use RESET SLAVE ALL;
para o MySQL 5.5.16 e posterior)SLAVE STATUS
consultas, mesmo após o RESET SLAVE
comando ser fornecido. É importante conhecer as ferramentas de monitoramento ou gerenciamento de configuração remota. Comportamento confirmado com o MySQL 5.5.38 no CentOS 6.5.
Eu sei que essa é uma pergunta antiga, mas descobri que também preciso redefinir as variáveis escravas. Se você usar "blá" como sugerido, o servidor tentará na inicialização para encontrar o servidor 'blá'.
Mude
MASTER
paraMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
Você pode verificar se a máquina não é mais escrava
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
agora gera um erro.
Nos servidores escravos:
Não há necessidade de reiniciar o MySQL no mestre ou no escravo. A documentação completa pode ser encontrada na seção 19 do Manual de Referência do MySQL .
Eu recomendo deixar o restante das configurações de replicação no local, caso decida reverter para a configuração anterior. Dessa forma, você teria que empurrar os dados e redefinir a posição do escravo (não se esqueça de remover skip-slave-start) em vez de recriar todo o pano de instalação.
Independentemente da versão do MySQL, a maneira mais completa de fazer isso é a seguinte
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
Isso tem que funcionar para a versão mais recente, porque a configuração de replicação ainda permanece na RAM do MySQL 5.5.
Acabei de responder uma pergunta semelhante sobre este assunto: Como mudar um escravo anterior do MySQL para ser um mestre e remover as informações de status do escravo?
Editar o arquivo my.cnf sozinho não é suficiente para desativar a replicação. De fato, não é mais a maneira recomendada de habilitá-lo. A colocação de entradas no arquivo my.cnf só é efetiva para a próxima inicialização e se comporta como se você tivesse inserido o comando no cliente mysql:
mysql> altere master para master_host = 'blá', master_user = 'blá', master_password = 'blá' ...;
Ambos os métodos criarão um arquivo no diretório de dados chamado master.info . Enquanto esse arquivo existir, o servidor tentará replicar usando os detalhes existentes. O "RESET SLAVE;" O comando listado na primeira resposta livrará o arquivo master.info (assim como o arquivo relay-log.info ). Conforme mencionado na primeira resposta, você também deseja certificar-se de que não possui essas informações de configuração no arquivo my.cnf; caso contrário, na próxima reinicialização do servidor, o log será reativado.
Uma resposta está aqui:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Edite o arquivo de configuração do MySQL: /etc/my.cnf e remova as 7 linhas a seguir na seção intitulada [mysqld]:
port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
Reinicie o MySQL.
Estou adicionando isso à resposta de Harrison Fisk:
Se você usou RESET SLAVE ALL;
, não será necessário reiniciar.
Além disso, convém ativar eventos que foram desativados no slave:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Para cada um deles:
alter event <event_name> enable;