Erro de sintaxe ao configurar a replicação master-master no MySQL

1

Então eu configurei meu par inicial de duplicação mestre-escravo em dois servidores MySQL diferentes. Essa parte está funcionando muito bem. Então, tudo o que tenho que fazer é configurar o primeiro mestre como escravo e configurar o primeiro escravo como segundo mestre, certo?

Errado!

Isso é o que acontece quando tento criar a segunda conta de escravo no servidor mestre secundário:

mysql> grant replication slave on *.* to 'repslave2'@'ourhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> start master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1

O que? O que quer dizer com "erro de sintaxe"? Isso é muito simples. Eu soletrei "mestre" direito. Funcionou no outro servidor sem ter que instalar nada de especial. "Stop slave" e "start slave" funcionam como anunciado neste servidor. Por que não funciona?

EDITADO PARA ADICIONAR:

Acho que encontrei parte do problema - que a replicação mestre-escravo é confusa entre os dois servidores. Aqui, eu tentei parar o mestre no mestre principal:

mysql> stop master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> stop master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1
mysql> start master;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master' at line 1
mysql> start slave;
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO
    
por Ernie 12.03.2015 / 23:50

3 respostas

1

Você deve definir a configuração principal primeiro no novo mestre e, em seguida, interromper o escravo no servidor que deseja tornar mestre antes de enviar o mestre inicial; comando.

Provavelmente não é a resposta que você queria, mas está correta.

Uma melhor compreensão do que você está tentando fazer seria útil.

    
por 13.03.2015 / 00:53
1

Experimente start slave .

Cada mestre deve ser um escravo do outro mestre, não se esqueça de ter diferentes server-id em cada servidor configurado em my.cnf .

Também defina corretamente auto_increment_increment e auto_increment_offset para evitar chaves primárias duplicadas que quebram a replicação.

Verifique com show slave status se Slave_IO_Running e Slave_SQL_Running estiverem com yes status depois de configurar corretamente cada servidor.

    
por 13.03.2015 / 05:27
1

Após a configuração, digite este comando START SLAVE IO_THREAD

    
por 05.11.2016 / 16:18

Tags