Maison >base de données >tutoriel mysql >Comment configurer la réplication maître-maître MySQL
La réplication Comment configurer la réplication maître-maître MySQL maître-esclave consiste à configurer le serveur esclave pour qu'il se mette à jour immédiatement après que le serveur maître ait terminé les modifications. Mais si des modifications sont apportées sur le serveur esclave, celui-ci ne mettra pas à jour le maître. Cet article présentera la configuration de la réplication Maître-Maître entre les serveurs Comment configurer la réplication maître-maître MySQL.
Dans cette configuration, toutes les modifications apportées sur l'un ou l'autre serveur seront mises à jour sur l'autre serveur.
Détails de configuration :
Master-1: 192.168.1.15 Master-2: 192.168.1.16 Database: mydb
Étape 1 : Configurer le serveur Comment configurer la réplication maître-maître MySQL Master-1
Modifier le Comment configurer la réplication maître-maître MySQL fichier de configuration et ajoutez le code suivant dans la section [mysqld].
# vim /etc/my.cnf
[mysqld] log-bin=mysql-bin binlog-do-db=mydb server-id=1
Redémarrez le serveur Comment configurer la réplication maître-maître MySQL pour que les modifications prennent effet.
# service mysqld restart
Créez un compte mysql avec les autorisations REPLICATION SLAVE sur le serveur Master-1, et le client de réplication se connectera au maître.
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'secretpassword'; mysql> FLUSH PRIVILEGES;
Il existe des instructions d'écriture de bloc sur toutes les tables, donc aucune modification ne peut être apportée après la sauvegarde.
mysql> use mydb; mysql> FLUSH TABLES WITH READ LOCK;
Utilisez les commandes suivantes pour vérifier le nom actuel du fichier journal binaire (Fichier) et la valeur de décalage actuelle (Position).
mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 332 | mydb | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
Le résultat ci-dessus montre que le binaire actuel utilise mysql-bin.000003 avec un décalage de 332. Notez ces valeurs pour les utiliser sur le serveur master-2 à l'étape suivante.
Sauvegardez la base de données et copiez-la sur un autre serveur Comment configurer la réplication maître-maître MySQL.
# mysqldump -u root -p mydb > mydb.sql # scp mydb.sql 192.168.1.16:/opt/
Une fois la sauvegarde terminée, supprimez le READ LOCK de la table afin que les modifications puissent être apportées.
mysql> UNLOCK TABLES;
Étape 2 : Configurer le serveur Comment configurer la réplication maître-maître MySQL Master-2
Modifiez le fichier de configuration mysql Master-2 et ajoutez les valeurs suivantes sous le champ [mysqld ] section.
#vim /etc/my.cnf [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1
server-id est toujours une valeur non nulle. Ces valeurs ne seront jamais similaires à celles des autres maîtres ou esclaves.
Redémarrez le serveur Comment configurer la réplication maître-maître MySQL, si la réplication est configurée, utilisez -skip-slave-start au démarrage, ne vous connectez pas immédiatement au serveur maître.
#service mysqld restart
Restaurez la sauvegarde de la base de données effectuée à partir du serveur maître.
#mysql -u root -p mydb </opt/mydb.sql
Créez un compte mysql avec les autorisations REPLICATION SLAVE sur le serveur Master-1, et le client de réplication se connectera au maître.
mysql> GRANT REPLICATION SLAVE ON *.*''repl_user'@'%'IDENTIFIED BY'secretpassword'; mysql> FLUSH PRIVILEGES;
Utilisez les commandes suivantes pour vérifier le nom du fichier journal binaire actuel (Fichier) et la valeur de décalage actuelle (Position).
mysql > SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 847 | mydb | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
Le résultat ci-dessus montre que le binaire actuel utilise mysql-bin.000001 avec un décalage de 847. Notez ces valeurs pour les utiliser à l'étape 3.
Utilisez la commande suivante pour définir la valeur de l'option sur le serveur esclave.
mysql> CHANGE MASTER TO MASTER_HOST ='192.168.1.15', - > MASTER_USER ='repl_user', - > MASTER_PASSWORD ='secretpassword', - > MASTER_LOG_FILE ='mysql-bin.000003', - > MASTER_LOG_POS = 332;
Étape 3 : Terminez l'installation de Comment configurer la réplication maître-maître MySQL Master-1
Connectez-vous au serveur Comment configurer la réplication maître-maître MySQL Master-1 et exécutez la commande suivante.
mysql> CHANGE MASTER TO MASTER_HOST ='192.168.1.16', MASTER_USER ='repl_user', MASTER_PASSWORD ='secretpassword', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS = 847;
Étape 4 : Démarrez SLAVE sur les deux serveurs
Exécutez les commandes suivantes sur les deux serveurs pour démarrer le processus de réplication esclave.
mysql> SLAVE START;
La réplication Comment configurer la réplication maître-maître MySQL Master-Master a été configurée avec succès sur votre système et votre mode de travail. Pour tester que la réplication fonctionne correctement, apportez des modifications sur l'un des serveurs et vérifiez si les modifications sont reflétées sur les autres serveurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!