J'utilise la réplication MySQL double maître et je souhaite maintenant passer à une seule base de données sans réplication. Comment désactiver complètement la réplication sur les deux bases de données?
Pour désactiver complètement la réplication avec une configuration maître-maître, vous devez procéder comme suit sur chaque esclave:
STOP SLAVE;
RESET SLAVE;
(Utilisation RESET SLAVE ALL;
pour MySQL 5.5.16 et versions ultérieures)Je sais que c'est une vieille question mais j'ai trouvé que je dois aussi réinitialiser les variables esclaves. Si vous utilisez "blah" comme suggéré, le serveur essaiera au démarrage de trouver le serveur "blah".
Remplacez
MASTER
parMASTER_Host='',MASTER_USER='',MASTER_PASSWORD='';
Vous pouvez vérifier que la machine n'est plus un esclave
SHOW SLAVE STATUS \G;
Sur le ou les serveurs esclaves:
Il n'est pas nécessaire de redémarrer MySQL sur le maître ou l'esclave. La documentation complète se trouve dans la section 19 du MySQL Reference Manual .
Je vous recommande de laisser le reste des paramètres de réplication en place au cas où vous décideriez de revenir à votre configuration précédente. De cette façon, il vous suffirait de pousser 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 façon 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 le paramètre de réplication persiste dans RAM pour MySQL 5.5.
Je viens de répondre à une question similaire à ce sujet: Comment changer un ancien esclave MySQL pour être un maître et supprimer les informations sur le statut de l'esclave?
La modification du fichier my.cnf seul ne suffit pas pour désactiver la réplication. En fait, ce n'est plus la façon recommandée de l'activer. Mettre les entrées dans le fichier my.cnf n'est efficace que pour le prochain démarrage et se comporte comme si vous aviez entré la commande dans le client mysql:
mysql> changez 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 répliquer en utilisant les détails qui s'y trouvent. Le "RESET SLAVE;" La commande répertoriée dans la première réponse supprimera le fichier master.info (ainsi que le fichier relay-log.info). Comme mentionné dans la première réponse, vous voulez également vous assurer que vous n'avez pas ces informations de configuration dans le fichier my.cnf, sinon au prochain redémarrage du serveur, la journalisation sera réactivée.
Une réponse est ici:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Modifiez 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 le redémarrage n'est pas nécessaire.
De plus, vous souhaiterez peut-être activer les événements qui ont été désactivés sur l'esclave:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Pour chacun d'eux:
alter event <event_name> enable;