Maison > base de données > tutoriel mysql > le corps du texte

Comment configurer la réplication maître-esclave MySQL

不言
Libérer: 2019-03-04 16:52:33
original
2202 Les gens l'ont consulté

Cet article vous présente la configuration de la réplication maître-esclave entre les serveurs MySQL. Jetons un coup d'œil au contenu spécifique.

Comment configurer la réplication maître-esclave MySQL

Détails de configuration :

Serveur maître : 192.168.1.10

Serveur esclave : 192.168.1.20

Base de données : mydb

1. Configurer le serveur principal MySQL

Créer un serveur avec les autorisations REPLICATION SLAVE sur le compte mysql du serveur principal, le client de réplication se connectera au maître.

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.1.20' IDENTIFIED BY 'secretpassword';
mysql> FLUSH PRIVILEGES;
Copier après la connexion

Ayez des instructions d'écriture de bloc sur toutes les tables, donc n'apportez pas de modifications après la sauvegarde.

mysql> use mydb;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> exit;
Copier après la connexion

Modifiez le fichier de configuration mysql et ajoutez le code suivant dans la section [mysqld].

# vim /etc/my.cnf
Copier après la connexion
Copier après la connexion
[mysqld]
log-bin=mysql-bin
binlog-do-db=mydb
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
Copier après la connexion

Redémarrez le serveur maître MySQL pour que les modifications prennent effet.

# service mysqld restart
Copier après la connexion

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.000002 |      107 | mydb         |                  |
+------------------+----------+--------------+------------------+
Copier après la connexion

Le résultat ci-dessus montre que le binaire actuel utilise mysql-bin.000002 avec un décalage de 107. Notez ces valeurs pour une utilisation sur le serveur esclave.

Sauvegardez la base de données et copiez-la sur le serveur MySQL esclave.

# mysqldump -u root -p mydb > mydb.sql
# scp mydb.sql 192.168.1.20:/opt/
Copier après la connexion

Une fois la sauvegarde terminée, supprimez le READ LOCK de la table afin que les modifications puissent être apportées.

mysql> UNLOCK TABLES;
Copier après la connexion

2. Configurez le serveur esclave MySQL

Modifiez le fichier de configuration salve mysql et ajoutez les valeurs suivantes dans la section [mysqld].

# vim /etc/my.cnf
Copier après la connexion
Copier après la connexion
[mysqld]
server-id=2
replicate-do-db=mydb
Copier après la connexion

server-id est toujours une valeur non nulle. Ces valeurs ne seront jamais similaires à celles des autres maîtres et esclaves.

Redémarrez le serveur esclave mysql. Si vous avez configuré la réplication, veuillez utiliser -skip-slave-start au démarrage et ne vous connectez pas immédiatement au serveur maître.

# /etc/init.d/mysqld restart
Copier après la connexion

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.10',
    -> MASTER_USER='repl_user',
    -> MASTER_PASSWORD='secretpassword',
    -> MASTER_LOG_FILE='mysql-bin.000002',
    -> MASTER_LOG_POS=107;
Copier après la connexion

Démarrez enfin le fil de discussion esclave

mysql> SLAVE START;
Copier après la connexion

Vérifiez l'état du serveur esclave.

mysql> show slave status G
Copier après la connexion
*************************** 1. row ***************************
               Slave_IO_State:
                  Master_Host: 192.168.1.15
                  Master_User: repl_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 107
               Relay_Log_File: mysqld-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: No
            Slave_SQL_Running: No
              Replicate_Do_DB: mydb
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 107
              Relay_Log_Space: 107
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
1 row in set (0.00 sec)
mysql>
Copier après la connexion

La réplication maître-esclave MySQL a été configurée avec succès sur votre système et votre mode de travail.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!