J'ai ajouté un serveur esclave supplémentaire à une réplication MySQL existante. Le serveur maître et l'ancien serveur esclave fonctionnent bien sans aucun problème, mais le serveur nouvellement ajouté s'arrête avec l'erreur suivante:
last_sql_errno: 1032
last_sql_error: Impossible d'exécuter l'événement Update_Rows sur la table xxx.email_events; Impossible de trouver un enregistrement dans 'email_events', error_code: 1032; erreur de gestionnaire ha_err_key_not_found; Le journal principal de l'événement mysqld-bin.000410, find_log_pos 368808733
Tout ira bien pendant quelques heures après la réparation.
questions
Vous pouvez localiser le code de clause SQL comme /usr/bin/mysqlbinlog -v --start-position=142743807 --stop-position=147399325 /data/mysql/data/master-bin.000010 > temp.log
Comparez la différence de la base de données esclave et maître selon Temp.log sur POS spécifique. Puis mettez à jour la base de données esclave.
Puis sautez cette ligne avec mysql -e "stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; start slave;";
Pour les personnes qui ont ceci comme une erreur unique, vous pouvez essayer de sauter l'article:
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
Commencer l'esclave;