Používám duální replikaci MySQL a nyní se chci přesunout do jediné databáze bez replikace. Jak úplně zakázám replikaci v obou databázích?
Chcete-li zcela zakázat replikaci pomocí nastavení master-master, měli byste udělat u každého slave následující:
STOP SLAVE;
RESET SLAVE;
(Použijte RESET SLAVE ALL;
pro MySQL 5.5.16 a novější)Vím, že je to stará otázka, ale zjistil jsem, že také musím resetovat proměnné otroka. Pokud používáte "bla", jak bylo doporučeno, server se při spuštění pokusí najít server 'bla'.
Změnit
MASTER
naMASTER_Host='',MASTER_USER='',MASTER_PASSWORD='';
Můžete si ověřit, že stroj již není otrokem
SHOW SLAVE STATUS \G;
Na podřízeném serveru (serverech):
Není třeba restartovat MySQL na master ani slave. Kompletní dokumentaci najdete v sekci 19 MySQL Reference Manual .
Doporučujeme ponechat zbývající nastavení replikace na místě pro případ, že se rozhodnete vrátit se k předchozí konfiguraci. Tímto způsobem byste prostě museli dát data zpět a resetovat polohu slave (nezapomeňte odebrat skip-slave-start), spíše než znovu vytvořit celou látku.
Bez ohledu na verzi MySQL je nejúplnějším způsobem následující
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
To musí fungovat pro jeho nejnovější verzi, protože nastavení replikace stále přetrvává v RAM pro MySQL 5.5).
Právě jsem odpověděl na podobnou otázku na toto téma: Jak změnit předchozí otrok MySQL, aby byl mistrem a odstranit informace o stavu otroka?
Úpravy souboru my.cnf samy o sobě nestačí k zakázání replikace. Ve skutečnosti to již není doporučený způsob, jak jej povolit. Vložení položek do souboru my.cnf je účinné pouze při příštím spuštění a chová se, jako byste zadali příkaz do klienta mysql:
mysql> změnit master na master_Host = 'bla', master_user = 'bla', master_password = 'bla' ...;
Obě tyto metody vytvoří soubor v datovém adresáři s názvem master.info. Dokud tento soubor existuje, server se pokusí replikovat pomocí tam uvedených podrobností. „RESET SLAVE;“ příkaz uvedený v první odpovědi se zbaví souboru master.info (stejně jako souboru relay-log.info). Jak je uvedeno v první odpovědi, také se chcete ujistit, že tyto konfigurační informace nemáte v souboru my.cnf, jinak bude při dalším restartu serveru protokolování znovu povoleno.
Jedna odpověď je zde:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Upravte konfigurační soubor MySQL: /etc/my.cnf a odeberte následujících 7 řádků do sekce s názvem [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*
Restartujte MySQL.
Přidávám to k odpovědi Harrison Fisk:
Pokud jste použili RESET SLAVE ALL;
pak restart není nutný.
Kromě toho můžete chtít povolit události, které byly na slave deaktivovány:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Pro každou z nich:
alter event <event_name> enable;