Comment configurer la réplication du maître-master mysql

Comment configurer la réplication du maître-master mysql

La réplication MySQL Master-Slave consiste à configurer le serveur esclave pour mettre à jour immédiatement dès que les modifications effectuées dans le serveur maître. Mais il ne mettra pas à jour Master s'il y a des modifications apportées sur le serveur esclave. Lisez cet article pour configurer la réplication maître-esclave.

Cet article vous aidera à mettre en place une réplication de maître-master entre les serveurs MySQL. Dans cette configuration, si des modifications apportées sur l'un ou l'autre serveur se mettent à jour sur une autre.

Détails de la configuration:
Master-1: 192.168.1.15 Master-2: 192.168.1.16 Base de données: MyDB 

Si vous utilisez des versions différentes - différentes versions de MySQL sur l'un ou l'autre des serveurs, utilisez ce lien pour vérifier la compatibilité.

Étape 1. Configurer le serveur MySQL Master-1

  • Modifier le fichier de configuration MySQL et ajouter les lignes suivantes dans la section [MySQLD].
  • # vim / etc / mon.CNF 
    [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1 
  • Redémarrez MySQL Server aux modifications prennent effet.
  • # Service MySqld Redémarrer 
  • Créez un compte MySQL sur le serveur Master-1 avec des privilèges d'esclaves de réplication auxquels le client de réplication se connectera à Master.
  • MySQL> Slave de réplication de la subvention sur *.* À 'repl_user' @ '%' identifié par 'SecretPassword'; MySQL> Privilèges de rinçage; 
  • Bloquer la déclaration d'écriture sur toutes les tables, donc aucune modification ne peut être apportée après avoir pris la sauvegarde.
  • MySQL> Utilisez MyDB; MySQL> Tables de rinçage avec verrouillage de lecture; 
  • Vérifiez le nom du fichier journal binaire actuel (fichier) et la valeur actuelle du décalage (position) à l'aide de la commande suivante.
  • mysql> afficher le statut maître; +------------------+----------+--------------+------------------+ | Fichier | Position | Binlog_do_db | Binlog_ignore_db | + ------------------ + ---------- + -------------- + ---- -------------- + | mysql-bin.000003 | 332 | MyDB | | + ------------------ + ---------- + -------------- + ---- -------------- + 1 ligne en jeu (0.00 sec) 

    La sortie ci-dessus montre que le fichier binaire actuel utilise mysql-bin.000003 et la valeur de décalage est 332. Notez ces valeurs à utiliser sur Master-2 Server à l'étape suivante.

  • Prenez une sauvegarde de la base de données et copiez-la dans un autre serveur MySQL.
  • # mysqldump -u root -p mydb> mydb.SQL # SCP MyDB.SQL 192.168.1.16: / opt / 
  • Une fois la sauvegarde terminée, supprimez le verrouillage de lecture des tables, afin que les modifications puissent être apportées.
  • MySQL> Déverrouiller les tables; 

    Étape 2. Configuration du serveur MySQL Master-2

  • Modifier le fichier de configuration MySQL Master-2 et ajouter des valeurs suivantes dans la section [MySQLD].
  • # vim / etc / mon.CNF 
    [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1 

    le serveur-id est toujours une valeur numérique non nulle. Cette valeur ne sera jamais similaire avec d'autres serveurs maître ou esclaves.

  • Redémarrez MySQL Server, si vous aviez déjà configuré la réplication Utilisation -Skip-Slave-Start pour commencer à ne pas vous connecter immédiatement à Master Server.
  • # Service MySqld Redémarrer 
  • Restaurer la sauvegarde de la base de données tirée du serveur maître.
  • # mysql -u root -p mydb < /opt/mydb.sql 
  • Créez un compte MySQL sur le serveur Master-1 avec des privilèges d'esclaves de réplication auxquels le client de réplication se connectera à Master.
  • MySQL> Slave de réplication de la subvention sur *.* À 'repl_user' @ '%' identifié par 'SecretPassword'; MySQL> Privilèges de rinçage; 
  • Vérifiez le nom du fichier journal binaire actuel (fichier) et la valeur actuelle du décalage (position) à l'aide de la commande suivante.
  • mysql> afficher le statut maître; +------------------+----------+--------------+------------------+ | Fichier | Position | Binlog_do_db | Binlog_ignore_db | + ------------------ + ---------- + -------------- + ---- -------------- + | mysql-bin.000001 | 847 | MyDB | | + ------------------ + ---------- + -------------- + ---- -------------- + 1 ligne en jeu (0.00 sec) 

    La sortie ci-dessus montre que le fichier binaire actuel utilise mysql-bin.000001 et la valeur de décalage est 847. Notez ces valeurs à utiliser à l'étape 3.

  • Configuration des valeurs de l'option sur le serveur esclave à l'aide de la commande suivante.
  • mysql> changer de maître en 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: Compléter la configuration sur MySQL Master-1

    Connectez-vous sur MySQL Master-1 Server et exécutez la commande suivante.

    mysql> changer de maître en 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 l'esclave sur les deux serveurs

    Exécutez la commande suivante sur les deux serveurs pour démarrer le processus d'esclave de réplication.

    MySQL> Start esclave; 

    La réplication MySQL Master-Master a été configurée avec succès sur votre système et en mode de travail. Pour tester si la réplication fonctionne, apportez les modifications à l'un ou l'autre serveur et vérifiez si les modifications se reflètent sur d'autres serveurs.

    Merci d'avoir utilisé ce tutoriel, si cela vous est utile, veuillez ne pas avoir oublié de le partager avec vos amis.