Maison >développement back-end >tutoriel php >Explication détaillée de l'exemple de configuration maître-esclave MySQL

Explication détaillée de l'exemple de configuration maître-esclave MySQL

小云云
小云云original
2018-03-21 09:11:551546parcourir

Pourquoi est-il nécessaire d'effectuer une configuration maître-esclave MySQL, et quels sont ses avantages ? Cet article partage principalement avec vous l'explication détaillée des exemples de configuration maître-esclave MySQL, dans l'espoir d'aider tout le monde.

1 : Implémenter l'équilibrage de charge du serveur

Seul le serveur principal implémente les opérations de mise à jour des données et ne se soucie pas des requêtes de données. Les requêtes de requête peuvent être transmises à plusieurs serveurs esclaves. Placer des mises à jour et des requêtes de données sur différents serveurs peut améliorer la sécurité des données, réduire le temps de réponse des applications et améliorer les performances du système.

2 : Sauvegarde hors site des données par réplication

La sauvegarde des données est une étape très importante à tout moment, et la configuration maître-esclave MySQL peut réaliser une sauvegarde hors site très eh bien, j'ai parfaitement résolu ce problème.

3 : Améliorer la disponibilité du système de base de données

La fonction de réplication de base de données réalise la synchronisation des données entre le serveur maître et le serveur esclave, augmentant ainsi la disponibilité du système de base de données. Lorsqu'un problème survient sur le serveur maître, l'administrateur de la base de données peut immédiatement laisser le serveur esclave servir de serveur maître pour les services de mise à jour et de requête des données.

Comment l'esclave copie-t-il les données sur le maître ?

1 : Lorsque les données du maître changent, il enregistrera les modifications dans le journal binaire.

2 : L'esclave copie le journal du maître dans son propre journal de relais.

3 : l'esclave met à jour les données en fonction des enregistrements du journal.

Configurer mysql maître-esclave

1 : Configurer le serveur maître

(1) : Créer un 'lien' utilisateur sur Master MySQL et l'autoriser D'autres serveurs esclaves peuvent accéder à distance au maître via l'utilisateur du lien, lire le journal binaire et réaliser la synchronisation des données.

  1. mysql> créer un lien utilisateur

  2. mysql> GRANT REPLICATION SLAVE ON *.* TO 'link'@'%' IDENTIFIÉ PAR 'mysql'

(2) : Modifier le fichier de configuration mysql my.ini (windows) / my.cnf (linux )

S'il s'agit d'un environnement Linux, modifiez le fichier /etc/my.cnf. S'il s'agit d'un environnement Windows, recherchez le fichier my.ini dans le répertoire d'installation mysql. Ajoutez les lignes d'instructions suivantes ci-dessous [mysqld] :

  1. server-id=1   //给数据库服务的唯一标识,必须唯一  
    log-bin=master-bin //开启二进制日志  
    log-bin-index=master-bin.index

(3) Redémarrez MySQL et vérifiez l'état de la sortie. est la suivante : Can

mysql> SHOW MASTER STATUS;  
+-------------------+----------+--------------+------------------+-------------------+  
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |  
+-------------------+----------+--------------+------------------+-------------------+  
| master-bin.000001 |      350 |              |                  |                   |  
+-------------------+----------+--------------+------------------+-------------------+  
1 row in set (0.00 sec)

2 : Configurer le serveur esclave

(1) Modifier le fichier de configuration mysql et ajouter les lignes suivantes :

  1. server-id=2
    relay-log-index=slave-relay-bin.index   
    relay-log=slave-relay-bin //配置中继日志  
    log_slave_updates = 1 //表示slave将复制事件写进自己的二进制日志  
    #replicate-do-table=bison.user //库名.表名  用来指定只对数据库中的某张表做同步

(2) Redémarrez MySQL et connectez-vous au maître

Une fois le redémarrage de MySQL terminé, connectez-vous à MySQL et utilisez l'instruction CHANGE MASTER TO pour vous connecter au maître

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.123',//主服务器ip  
    -> MASTER_USER='link',  
    -> MASTER_PASSWORD='mysql',  
    -> MASTER_LOG_FILE='mysql-bin.000001',//master服务器日志文件,主服务器mysql使用SHOW MASTER STATUS语句  
    -> MASTER_LOG_POS=0;//日志的开始位置

(3) Vérifiez s'il est configuré Correct

  1. mysql> SHOW SLAVE STATUS\G

部分显示如下:  
*************************** 1. row ***************************  
             Slave_IO_State:  
                Master_Host: server1  
                Master_User: repl  
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000001
        Read_Master_Log_Pos: 4
             Relay_Log_File: mysql-relay-bin.000001
              Relay_Log_Pos: 4
      Relay_Master_Log_File: mysql-bin.000001
          <span style="color:#ff0000;"><strong> Slave_IO_Running: No  
          Slave_SQL_Running: No</strong></span>
  1. (4) Activer l'esclave

  2. mysql> démarrer l'esclave

Afficher la configuration :

mysql> SHOW SLAVE STATUS\G  
部分显示如下:主要看Slave_IO_Running和Slave_SQL_Running  
*************************** 1. row ***************************  
               Slave_IO_State: Waiting for master to send event  
                  Master_Host: 192.168.1.234
                  Master_User: link  
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000001
          Read_Master_Log_Pos: 350
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 548
        Relay_Master_Log_File: master-bin.000001
             Slave_IO_Running: Yes  
            Slave_SQL_Running: Yes

ok Maintenant, essayons de créer une base de données sur le serveur principal.

Recommandations associées :

Introduction à la configuration maître-esclave dans le serveur MySQL

Série MySQL (15) Configuration maître-esclave MySQL

Explication détaillée de la configuration maître-esclave de la base de données MySQL

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!

Déclaration:
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