Mysql
 sql >> Database >  >> RDS >> Mysql

Come sincronizzare nuovamente il DB Mysql se Master e slave hanno database diversi in caso di replica Mysql?

Questa è la procedura passo passo completa per risincronizzare una replica master-slave da zero:

Al maestro:

RESET MASTER;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

E copia i valori del risultato dell'ultimo comando da qualche parte.

Senza chiudere la connessione al client (perché rilascerebbe il blocco di lettura) emettere il comando per ottenere un dump del master:

mysqldump -u root -p --all-databases > /a/path/mysqldump.sql

Ora puoi rilasciare il blocco, anche se il dump non è ancora terminato. Per farlo, esegui il seguente comando nel client MySQL:

UNLOCK TABLES;

Ora copia il file dump sullo slave usando scp o il tuo strumento preferito.

Allo schiavo:

Apri una connessione a MySQL e digita:

STOP SLAVE;

Carica il dump dei dati del master con questo comando della console:

mysql -uroot -p < mysqldump.sql

Sincronizza registri slave e master:

RESET SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;

Dove i valori dei campi sopra sono quelli che hai copiato prima.

Infine, digita:

START SLAVE;

Per verificare che tutto funzioni di nuovo, dopo aver digitato:

SHOW SLAVE STATUS;

dovresti vedere:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Questo è tutto!