J'exécute la réplication double maître MySQL et souhaite maintenant passer à une base de données unique sans réplication. Comment désactiver complètement la réplication sur les deux bases de données?
J'exécute la réplication double maître MySQL et souhaite maintenant passer à une base de données unique sans réplication. Comment désactiver complètement la réplication sur les deux bases de données?
Réponses:
Pour désactiver complètement la réplication avec une configuration maître-maître, procédez comme suit sur chaque esclave:
STOP SLAVE;
RESET SLAVE;
(Utilisez RESET SLAVE ALL;
pour MySQL 5.5.16 et versions ultérieures)SLAVE STATUS
requêtes, même après que la RESET SLAVE
commande a été donnée. Important à savoir pour les outils de surveillance ou de gestion de la configuration à distance. Comportement confirmé avec MySQL 5.5.38 sur CentOS 6.5.
Je sais que c’est une vieille question, mais j’ai constaté que je devais également réinitialiser les variables esclave. Si vous utilisez "blah" comme suggéré, le serveur essaiera au démarrage de trouver le serveur "blah".
Changer
MASTER
enMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
Vous pouvez vérifier que la machine n'est plus un esclave
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
génère maintenant une erreur.
Sur le ou les serveurs esclaves:
Il n'est pas nécessaire de redémarrer MySQL sur le maître ou l'esclave. Une documentation complète est disponible dans la section 19 du manuel de référence MySQL .
Je vous recommande de laisser le reste des paramètres de réplication en place si vous décidez de revenir à votre configuration précédente. De cette façon, il vous suffirait de repousser les données et de réinitialiser la position de l'esclave (n'oubliez pas de supprimer skip-slave-start) plutôt que de recréer la configuration complète.
Quelle que soit la version de MySQL, la manière la plus complète de procéder est la suivante
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
Cela doit fonctionner pour la dernière version car les paramètres de réplication sont toujours présents dans la RAM pour MySQL 5.5.
Je viens de répondre à une question similaire à ce sujet: Comment changer un esclave précédent de MySQL en maître et supprimer les informations sur son statut?
La modification du fichier my.cnf seul ne suffit pas pour désactiver la réplication. En fait, ce n'est plus la méthode recommandée pour l'activer. Mettre des entrées dans le fichier my.cnf n’est effectif que pour le prochain démarrage et se comporte comme si vous aviez entré la commande dans le client mysql:
mysql> change master en master_host = 'blah', master_user = 'blah', master_password = 'blah' ...;
Ces deux méthodes créeront un fichier dans le répertoire de données appelé master.info . Tant que ce fichier existe, le serveur essaiera de se répliquer en utilisant les détails qu'il contient. Le "RESET SLAVE;" La commande listée dans la première réponse supprimera le fichier master.info (ainsi que le fichier relay-log.info ). Comme indiqué dans la première réponse, vous voulez également vous assurer que vous ne disposez pas de ces informations de configuration dans le fichier my.cnf, sinon la journalisation sera réactivée au prochain redémarrage du serveur.
Une réponse est ici:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Editez le fichier de configuration MySQL: /etc/my.cnf et supprimez les 7 lignes suivantes dans la section intitulée [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*
Redémarrez MySQL.
J'ajoute ceci à la réponse de Harrison Fisk:
Si vous avez utilisé RESET SLAVE ALL;
alors redémarrer n'est pas nécessaire.
De plus, vous souhaiterez peut-être activer les événements qui ont été désactivés sur esclave:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Pour chacun d'eux:
alter event <event_name> enable;