DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Database Zone»Configurer la réplication maître-esclave MySQL 8 sur Ubuntu 20.04
    Database Zone

    Configurer la réplication maître-esclave MySQL 8 sur Ubuntu 20.04

    octobre 15, 2021
    Configurer la réplication maître-esclave MySQL 8 sur Ubuntu 20.04
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Image MySQL

    MySQL est un open-source et l’un des systèmes de gestion de bases de données relationnelles les plus largement utilisés. La configuration d’un serveur de sauvegarde MySQL séparé est essentielle en cas de panne, car le serveur de sauvegarde contient tout le nécessaire pour une récupération réussie.

    Les fonctionnalités de réplication de MySQL vous permettent de conserver plusieurs copies des données MySQL. Toutes les données du serveur maître seront automatiquement synchronisées avec le serveur esclave. Si votre serveur maître échoue, vous pouvez promouvoir un esclave en maître pour les opérations de validation.

    Conditions préalables

    • Deux serveurs exécutant Ubuntu 20.04.
    • Un mot de passe root est configuré sur les deux serveurs.

    Pour ce tutoriel, nous utiliserons la configuration suivante :

    Serveur Adresse IP
    Maître 45.58.41.25
    trimer 45.58.40.60

    Installer MySQL 8

    Tout d’abord, vous devrez installer le serveur MySQL 8 sur les deux serveurs. Exécutez la commande suivante pour installer le serveur MySQL 8 sur les deux serveurs.

    apt install mysql-server -y

    Après avoir installé le serveur MySQL, vous devrez définir un mot de passe root MySQL sur les deux serveurs. Exécutez la commande suivante pour définir un mot de passe root :

    mysql_secure_installation

    Il vous sera demandé les éléments suivants :

    Press y|Y for Yes, any other key for No:

    Appuyez simplement sur Entrer pour définir un mot de passe root :

    Please set the password for root here.
    New password: 
    Re-enter new password:

    Définissez votre mot de passe root MySQL et répondez aux questions restantes comme indiqué ci-dessous :

    Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
    Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
    Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
    Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

    Configurer le serveur maître

    Tout d’abord, vous devrez modifier le fichier de configuration par défaut de MySQL sur le serveur maître pour autoriser l’accès à distance et activer le journal binaire.

    nano /etc/mysql/mysql.conf.d/mysqld.cnf

    Ajoutez ou modifiez les lignes suivantes :

    [mysqld]
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    datadir = /var/lib/mysql
    bind-address            = 0.0.0.0  
    log_error = /var/log/mysql/error.log
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    max_binlog_size = 500M
    slow_query_log = 1

    Enregistrez et fermez le fichier, puis redémarrez le service MySQL pour appliquer les modifications.

    systemctl restart mysql

    Créer un utilisateur de réplication sur le serveur maître

    Ensuite, vous devrez créer un utilisateur de réplication sur le serveur maître pour gérer la réplication. Pour cela, connectez-vous au shell MySQL avec la commande suivante :

    mysql -u root -p

    Fournissez votre mot de passe root MySQL, puis exécutez la commande suivante pour créer un utilisateur de réplication :

    mysql> CREATE USER slaveuser@45.58.40.60 IDENTIFIED WITH mysql_native_password BY 'password';

    Ensuite, accordez les privilèges REPLICATION SLAVE à l’utilisateur de réplication :

    mysql> grant replication slave on *.* to slaveuser@45.58.40.60;

    Ensuite, videz les privilèges pour appliquer les modifications :

    mysql> flush privileges;

    Ensuite, vérifiez les privilèges à l’aide de la commande suivante :

    mysql> show grants for slaveuser@45.58.40.60;

    Exemple de sortie :

    +-------------------------------------------------------------+
    | Grants for slaveuser@45.58.40.60                            |
    +-------------------------------------------------------------+
    | GRANT REPLICATION SLAVE ON *.* TO `slaveuser`@`45.58.40.60` |
    +-------------------------------------------------------------+

    Ensuite, quittez le shell MySQL avec la commande suivante

    mysql> exit; 

    Noter: Remplace le 45.58.40.60 avec l’adresse IP du Trimer serveur.

    Configurer le serveur esclave

    Ensuite, vous devrez éditer le fichier de configuration principal de MySQL et apporter quelques modifications :

    nano /etc/mysql/mysql.conf.d/mysqld.cnf

    Ajoutez ou modifiez les lignes suivantes :

    pid-file        = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    bind-address            = 0.0.0.0  
    datadir = /var/lib/mysql
    log_bin = /var/log/mysql/mysql-bin.log
    server-id = 2
    read_only = 1
    max_binlog_size = 500M
    slow_query_log   = 1

    Enregistrez et fermez le fichier, puis redémarrez le service MySQL pour appliquer les modifications :

    systemctl restart mysql

    Initialiser la réplication sur le serveur esclave

    Ensuite, vous devrez démarrer le processus de réplication sur le serveur esclave.

    Tout d’abord, connectez-vous au shell MySQL sur le serveur maître avec la commande suivante :

    mysql -u root -p

    Ensuite, vérifiez l’état du maître avec la commande suivante :

    mysql> show master statusG

    Exemple de sortie :

    *************************** 1. row ***************************
                 File: mysql-bin.000002
             Position: 1047
         Binlog_Do_DB: 
     Binlog_Ignore_DB: 
    Executed_Gtid_Set: 
    1 row in set (0.00 sec)

    À partir de la sortie ci-dessus, notez le fichier journal principal et le numéro de position.

    Ensuite, allez sur le serveur esclave et connectez-vous au shell MySQL :

    mysql -u root -p

    Ensuite, utilisez les informations obtenues du serveur maître et configurez le serveur esclave avec la commande suivante :

    mysql> CHANGE MASTER TO MASTER_HOST='45.58.41.25', MASTER_USER='slaveuser', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=1047;

    Ensuite, démarrez l’esclave à l’aide de la commande suivante :

    Noter: remplacer IP 45.58.41.25 avec l’adresse IP du Maître serveur.

    mysql> start slave;

    Ensuite, vérifiez l’état de l’esclave avec la commande suivante :

    mysql> show slave statusG

    Vous devriez obtenir la sortie suivante :

    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 45.58.41.25
                      Master_User: slaveuser
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000002
              Read_Master_Log_Pos: 1047
                   Relay_Log_File: slave-relay-bin.000002
                    Relay_Log_Pos: 324
            Relay_Master_Log_File: mysql-bin.000002
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes

    Vérifier la réplication maître-esclave

    À ce stade, la réplication MySQL maître-esclave est configurée. Maintenant, il est temps de tester si la réplication fonctionne ou non.

    Tout d’abord, allez sur le serveur maître et créez une base de données avec la commande suivante :

    mysql -u root -p 
    mysql> create database replicadb;

    Ensuite, vérifiez toutes les bases de données à l’aide de la commande suivante :

    mysql> show databases;

    Exemple de sortie :

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | replicadb          |
    | sys                |
    +--------------------+

    Ensuite, quittez le shell MySQL :

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.