GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer la réplication maître-esclave MariaDB sur Ubuntu 18.04

MariaDB est un système de gestion de base de données relationnelle gratuit et open source, et est l'une des options les plus populaires. La réplication est le processus de copie de données d'un serveur de base de données maître vers un autre serveur de base de données esclave. Dans la topologie maître-esclave, un serveur agit en tant que maître et les autres serveurs agissent en tant qu'esclaves. Dans la réplication maître-esclave, les données sont répliquées dans un seul sens. Si vous modifiez les données sur le serveur esclave, elles ne seront pas répliquées sur le serveur maître. Si le serveur maître tombe en panne, vous pouvez toujours récupérer vos données à partir du serveur esclave.

Vous pouvez utiliser la réplication maître-esclave MariaDB à plusieurs fins ; certains d'entre eux sont répertoriés ci-dessous :

  • Évolutivité et haute disponibilité
  • Sauvegardes
  • Analytique
  • Équilibrage de charge
  • Amélioration des performances de la base de données
  • Basculement simplifié
  • Sécurité des données

Dans ce tutoriel, nous allons vous montrer comment configurer la réplication maître-esclave MariaDB sur le serveur Ubuntu 18.04.

Prérequis

  • Deux nouveaux VPS Ubuntu 18.04 sur la plate-forme cloud Atlantic.Net.
  • Un mot de passe racine statique configuré sur les deux serveurs.

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 18.04 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois que vous êtes connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

apt-get update -y

Étape 2 - Installer MariaDB sur les deux serveurs

Tout d'abord, vous devrez installer MariaDB sur les deux serveurs. Vous pouvez l'installer en exécutant la commande suivante :

apt-get install mariadb-server mariadb-client -y

Après avoir installé MariaDB, exécutez la commande suivante pour sécuriser l'installation de MariaDB :

mysql_secure_installation

Répondez à toutes les questions comme indiqué ci-dessous :

Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

À ce stade, vous avez installé et sécurisé les deux serveurs MariaDB.

Étape 3 - Configurer le serveur maître

Ensuite, vous devrez activer la journalisation binaire et la réplication sur le serveur maître. Pour cela, ouvrez le fichier /etc/mysql/mariadb.conf.d/50-server.cnf avec votre éditeur de texte préféré :

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Recherchez la ligne bind-address et remplacez la valeur par 0.0.0.0 pour autoriser les connexions entrantes.

bind-address            = 0.0.0.0

Ajoutez ensuite les lignes suivantes à la fin du fichier :

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service MariaDB pour mettre en œuvre les modifications :

systemctl restart mariadb

Ensuite, vous devrez créer un utilisateur de réplication. Le serveur esclave utilisera cet utilisateur pour se connecter au serveur maître et demander des journaux binaires.

Tout d'abord, connectez-vous au shell MariaDB avec la commande suivante :

mysql -u root -p

Indiquez votre mot de passe root lorsque vous y êtes invité, puis créez un utilisateur avec la commande suivante :

CREATE USER 'replication'@'%' identified by 'your-password';

Ensuite, accordez le privilège esclave de réplication à cet utilisateur avec la commande suivante :

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';

Ensuite, videz les privilèges avec la commande suivante :

FLUSH PRIVILEGES;

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

show master status;

Vous devriez obtenir le résultat suivant :

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      313 |              |                  |
+------------------+----------+--------------+------------------+

Ensuite, quittez le shell MariaDB avec la commande suivante :

EXIT;

Remarque  :Veuillez vous souvenir du fichier et Position détails de la sortie ci-dessus. Vous aurez besoin de ces valeurs lors de la configuration du serveur esclave.

Étape 4 - Configurer le serveur esclave

Ensuite, connectez-vous au serveur esclave et ouvrez le fichier /etc/mysql/mariadb.conf.d/50-server.cnf :

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Trouvez la ligne bind-address et changez la valeur en 0.0.0.0 comme indiqué ci-dessous :

bind-address            = 0.0.0.0

Ajoutez ensuite les lignes suivantes à la fin du fichier :

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service MariaDB pour mettre en œuvre les modifications :

systemctl restart mariadb

Ensuite, connectez-vous au shell MariaDB avec la commande suivante :

mysql -u root -p

Fournissez votre mot de passe root lorsque vous y êtes invité, puis arrêtez les threads esclaves comme indiqué ci-dessous :

stop slave;

Ensuite, exécutez la commande suivante pour configurer l'esclave pour répliquer le maître :

CHANGE MASTER TO MASTER_HOST = 'your-master-host-ip', MASTER_USER = 'replication', MASTER_PASSWORD = 'your-password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 313;

Ensuite, démarrez les threads esclaves et quittez le shell MariaDB comme indiqué ci-dessous :

start slave;
exit;

Remarque :Modifiez la commande ci-dessus pour utiliser l'adresse IP de votre hôte maître et votre mot de passe que vous avez créés lors des étapes précédentes. Veuillez utiliser le nom du fichier journal et les valeurs de position que vous avez obtenus du serveur maître.

Étape 5 :Tester la réplication de la base de données

À ce stade, vous avez configuré la réplication maître-esclave. Il est maintenant temps de tester la réplication entre maître et esclave.

Sur le serveur maître, connectez-vous au shell MariaDB avec la commande suivante :

mysql -u root -p

Fournissez votre mot de passe root lorsque vous y êtes invité, puis créez une base de données avec le nom mydb comme indiqué ci-dessous :

create database mydb;

Ensuite, créez une table avec le nom "products" dans la base de données mydb :

use mydb;
CREATE TABLE products(product_id INT NOT NULL AUTO_INCREMENT,product_name VARCHAR(100) NOT NULL,product_manufacturer VARCHAR(40) NOT NULL,submission_date DATE,PRIMARY KEY ( product_id ));

Ensuite, exécutez la commande suivante pour vérifier la table :

SHOW TABLES;

Sortie :

+----------------+
| Tables_in_mydb |
+----------------+
| products       |
+----------------+

Sur le serveur esclave, connectez-vous au shell MariaDB avec la commande suivante :

mysql -u root -p

Fournissez votre mot de passe root lorsque vous y êtes invité, puis vérifiez le statut de l'esclave :

SHOW SLAVE STATUS \G

Vous devriez voir le résultat suivant :

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: your-master-host-ip
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 721
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 945
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

Ensuite, exécutez la commande suivante pour vérifier si la base de données est répliquée :

show databases;

Vous devriez voir la base de données mydb que vous avez créée sur le serveur maître :

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
+--------------------+

Ensuite, vérifiez la table des produits que vous avez créée sur le serveur maître :

MariaDB [(none)]> use mydb;
MariaDB [mydb]> show tables;

Vous devriez voir le tableau des produits dans la sortie suivante :

+----------------+
| Tables_in_mydb |
+----------------+
| products       |
+----------------+

Toutes nos félicitations! Votre réplication maître-esclave MariaDB fonctionne comme prévu. Vous pouvez maintenant facilement récupérer votre base de données en cas de panne. Commencez dès aujourd'hui avec la réplication maître-esclave MariaDB avec un package d'hébergement VPS d'Atlantic.Net.


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

  2. Comment configurer le serveur Rsyslog sur Ubuntu 18.04 LTS

  3. Comment configurer le cluster MariaDB Galera sur Ubuntu 20.04

  4. Configurer Rsyslog Server sur Ubuntu 20.04 - Comment faire ?

  5. Comment installer MariaDB sur Ubuntu 22.04

Comment configurer le serveur Git sur Ubuntu 20.04

Comment configurer le serveur Rsyslog sur Ubuntu

Comment configurer le serveur DHCP sur Ubuntu

Comment installer le serveur DNS maître et esclave BIND9 sur Ubuntu

Procédure :configuration initiale du serveur Ubuntu 15.04

Comment configurer la réplication maître-esclave MySQL sur RHEL 7 ?