GNU/Linux >> Tutoriels Linux >  >> Debian

Comment configurer la réplication maître-esclave MySQL (MariaDB) sur Debian 10

La réplication MySQL est un processus de copie de données d'un serveur de base de données (maître) vers un ou plusieurs serveurs (esclaves).

MySQL prend en charge plusieurs topologies de réplication, la topologie maître/esclave étant l'une des topologies les plus connues dans laquelle un serveur de base de données agit en tant que maître, tandis qu'un ou plusieurs serveurs agissent en tant qu'esclaves. Par défaut, la réplication est asynchrone où le maître envoie des événements décrivant les modifications de la base de données à son journal binaire et les esclaves demandent les événements lorsqu'ils sont prêts.

Dans ce guide, nous allons vous montrer comment configurer la réplication maître/esclave MariaDB avec un serveur maître et un serveur esclave sur Debian 10. MariaDB est l'implémentation par défaut de MySQL dans Debian. Les mêmes étapes s'appliquent à Oracle MySQL.

Ce type de topologie de réplication convient le mieux au déploiement d'instances dupliquées en lecture pour la mise à l'échelle en lecture, la sauvegarde des bases de données en direct pour la reprise après sinistre et les tâches d'analyse.

Prérequis #

Nous supposons que vous avez deux serveurs exécutant Debian 10, communiquant entre eux via un réseau privé. Si votre fournisseur d'hébergement ne prend pas en charge les adresses IP privées, vous pouvez utiliser les adresses IP publiques et configurer votre pare-feu pour autoriser le trafic sur le port 3306 uniquement à partir de sources fiables.

Les serveurs utilisés dans cet exemple ont les adresses IP suivantes :

Master IP: 10.10.8.12
Slave IP:  10.10.8.164

Installation de MariaDB #

La valeur par défaut Les référentiels Debian 10 incluent MariaDB version 10.3. Il est préférable d'installer la même version de MariaDB sur les deux serveurs pour éviter tout problème potentiel.

Installez MariaDB sur le maître et l'esclave en exécutant les commandes suivantes :

sudo apt-get updatesudo apt-get install mariadb-server

Configuration du serveur maître #

La première étape consiste à configurer le serveur maître. Nous allons apporter les modifications suivantes :

  • Configurez le serveur MariaDB pour qu'il écoute sur l'adresse IP privée.
  • Définissez un ID de serveur unique.
  • Activer la journalisation binaire.

Ouvrez le fichier de configuration MariaDB et décommentez ou définissez les lignes suivantes :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
maître :/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.12
server-id              = 1
log_bin                = /var/log/mysql/mysql-bin.log

Une fois cela fait, enregistrez le fichier et redémarrez le service MySQL pour que les modifications prennent effet :

sudo systemctl restart mariadb

L'étape suivante consiste à créer un nouvel utilisateur de réplication. Connectez-vous au serveur MariaDB en tant qu'utilisateur root :

sudo mysql

Exécutez les requêtes SQL suivantes pour créer un utilisateur nommé replica et accordez le REPLICATION SLAVE privilège à l'utilisateur :

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
Assurez-vous de changer l'adresse IP avec votre adresse IP esclave. Vous pouvez nommer l'utilisateur comme vous le souhaitez.

Toujours dans l'invite MySQL, exécutez la commande suivante qui imprimera le nom et la position du fichier binaire.

SHOW MASTER STATUS\G
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 328
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.001 sec)

Prenez note du nom du fichier, ‘mysql-bin.000001’ et Position ‘328’ . Ces valeurs sont nécessaires lors de la configuration du serveur esclave et seront probablement différentes sur votre serveur.

Configuration du serveur esclave #

Nous allons faire les mêmes modifications sur le serveur esclave que sur le maître :

  • Configurez le serveur MySQL pour qu'il écoute sur l'adresse IP privée.
  • Définissez un ID de serveur unique.
  • Activer la journalisation binaire.

Ouvrez le fichier de configuration MariaDB et modifiez les lignes suivantes :

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
esclave :/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.164
server-id              = 2
log_bin                = /var/log/mysql/mysql-bin.log

Redémarrez le service MariaDB :

sudo systemctl restart mariadb

L'étape suivante consiste à configurer les paramètres que le serveur esclave utilisera pour se connecter au serveur maître. Connectez-vous au shell MariaDB :

sudo mysql

Commencez par arrêter les threads esclaves :

STOP SLAVE;

Exécutez la requête suivante pour configurer la réplication Maître/Esclave :

CHANGE MASTER TOMASTER_HOST='10.10.8.12',MASTER_USER='replica',MASTER_PASSWORD='replica_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=328;

Assurez-vous que vous utilisez l'adresse IP, le nom d'utilisateur et le mot de passe corrects. Le nom et la position du fichier journal doivent être identiques aux valeurs que vous avez obtenues du serveur maître.

Une fois cela fait, démarrez les threads esclaves.

START SLAVE;

Tester la configuration #

À ce stade, vous devriez avoir une configuration de réplication maître/esclave fonctionnelle.

Pour vérifier que tout est correctement configuré, créez une nouvelle base de données sur le serveur maître :

sudo mysql
CREATE DATABASE replicatest;

Connectez-vous au shell MySQL esclave :

sudo mysql

Exécutez la commande suivante pour répertorier toutes les bases de données :

SHOW DATABASES;

Vous remarquerez que la base de données que vous avez créée sur le serveur maître est répliquée sur l'esclave :

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| replicatest        |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Debian
  1. Comment installer MySQL 8.0 / 5.7 sur Debian 11 / Debian 10

  2. Comment installer et configurer Mariadb 10 dans Debian 11

  3. Comment installer le serveur MySQL sur Debian 9

  4. Comment installer le serveur MySQL sur Debian 10 Buster

  5. Comment installer Zabbix sur Debian 9

Comment configurer le serveur et le client NTP sur Debian 10

Comment configurer LAMP avec Debian 11

Comment configurer le serveur Samba avec Debian 11

Comment installer le serveur MySQL 8.0 sur Debian 11 Bullseye

Comment installer MySQL/MariaDB sur Debian 11

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