Question Erreur: "impossible d'initialiser la structure des informations de base" lors de la réplication maître de l'esclave dans MySQL


J'essaie de faire la réplication maître des esclaves pour MySQL. Lorsque je tape la commande suivante:

CHANGE MASTER TO MASTER_HOST='10.1.100.1', MASTER_USER='slave_user', MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=451228;
mysql> START SLAVE;

il génère l'erreur suivante:

ERREUR 1201 (HY000): impossible   initialiser la structure principale des informations; plus   des messages d'erreur peuvent être trouvés dans le   Journal d'erreur MySQL

Toute aide serait grandement appréciée.


36
2018-02-17 13:22


origine


Réponses:


ESSAYEZ DE LE RÉINITIALISER, C'EST LA MAGIE! SUR ESCLAVE LE TYPE DE COMMANDE SLAVE MYSQL:

RESET SLAVE;

Ensuite, essayez à nouveau:

CHANGE MASTER TO MASTER_HOST='10.1.100.1', MASTER_USER='slave_user', MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=451228;
mysql> START SLAVE;

130
2018-03-29 21:10



S'il vous plaît vérifier plusieurs choses:

1) Assurez-vous que /etc/my.cnf du maître a bien défini server_id

Voici pourquoi: La réplication repose sur server_id. Chaque fois qu'une requête est exécutée et est enregistrée dans le journal binaire du maître, l'identifiant server_id du maître est enregistré avec lui. Par défaut, si un id_serveur n'est pas défini dans /etc/my.cnf, id_serveur est défini par défaut sur 1. Cependant, les règles de réplication MySQL exigent qu'un ID_serveur soit explicitement défini dans le fichier /etc/my.cnf du maître. De plus, pour tout esclave donné, mysqld vérifie l'id_serveur de l'instruction SQL pendant qu'il le lit à partir du journal du relais et s'assure qu'il est différent de l'id_serveur de l'esclave. C'est ainsi que MySQL Replication sait qu'il est prudent d'exécuter cette instruction SQL. Cette règle est nécessaire dans le cas où la réplication circulaire (Master-Master, MultiMaster) est implémentée.

2) Assurez-vous que /etc/my.cnf de l'esclave a bien défini server_id

Voici pourquoi: Même raison que dans # 1

3) Assurez-vous que le server_id dans le fichier /etc/my.cnf du maître est différent du server_id dans le fichier /etc/my.cnf de l'esclave.

Voici pourquoi: Même raison que dans # 1

Remarque: Si vous configurez plusieurs esclaves, veuillez vous assurer que chaque esclave a un identifiant de serveur différent de celui de son maître et de ses esclaves frères.

Voici pourquoi: Exemple

Un maître avec 2 esclaves
MASTER a server_id 1
SLAVE1 a server_id 2
SLAVE2 possède server_id 2

La réplication deviendra agressive sur SLAVE2 car un esclave frère a le même id_serveur. En fait, il va progressivement prendre du retard, prendre une pause, traiter quelques instructions SQL. C'est le défaut du maître pour avoir un ou plusieurs esclaves avec un identifiant de serveur identique. C'est un piège qui n'est pas vraiment documenté nulle part. J'ai vu cela des dizaines de fois dans ma vie.


5
2018-02-17 20:49