Comment réinitialiser (re-synchir) réplication maître-esclave de MySQL

Comment réinitialiser (re-synchir) réplication maître-esclave de MySQL

Parfois, la réplication MySQL crée des problèmes et l'esclave n'a pas pu se synchroniser correctement à partir du serveur de base de données maître. Cela peut provoquer en raison de beaucoup de raisons. Seule la question est de savoir comment y remédier?

Cet article vous guidera sur la façon de réinitialiser la réplication MySQL et il recommencera de zéro.

Avertissement: Après avoir utilisé ce tutoriel, tous vos fichiers bin-log seront supprimés, donc si vous le souhaitez, vous pouvez d'abord prendre une sauvegarde des fichiers bin-log, puis suivre les instructions.

Au serveur esclave:

Au début, nous devons arrêter l'esclave sur le serveur d'esclaves. Connectez-vous au serveur MySQL et exécutez la commande suivante.

mysql> stop esclave; 

Sur Master Server:

Après avoir arrêté l'esclave, allez sur Master Server et réinitialisez l'état maître à l'aide de la commande suivante.

mysql> réinitialiser le maître; MySQL> Tables de rinçage avec verrouillage de lecture; 

[Remarque: l'ajout d'un verrouillage de lecture avec des sites de production. En savoir plus sur le verrouillage de la table]

Prenez un vidage de la base de données est reproduit à l'aide de la commande suivante.

# mysqldump -u root -p mydb> mydb-dump.SQL 

Après avoir pris la sauvegarde déverrouiller les tables sur Master Server.

MySQL> Déverrouiller les tables; 
Au serveur esclave:

Restaurer la sauvegarde de la base de données prise sur le serveur esclave à l'aide de la commande suivante.

# mysql -u root -p mydb < mydb-dump.sql 

Connectez-vous à MySQL et exécutez également les commandes suivantes pour réinitialiser l'état d'esclaves.

mysql> réinitialiser l'esclave; mysql> changer de maître en master_log_file = "mysql-bin.000001 ", master_log_pos = 1; 

Après avoir réinitialisé la réplication esclave de l'esclave

mysql> commencer l'esclave; 

Maintenant, votre réplication a été synchronisée comme nouvellement configurée. vous pouvez le vérifier en utilisant les commandes suivantes.

mysql> montrer le statut d'esclave \ g