Pour configurer la réplication MariaDB maître-maître/esclave, suivez ces étapes :
Étape 1 : Vérifiez si GTID est activé
Avant de commencer, vérifiez si GTID est activé. Il est recommandé d'utiliser des GTID avec la réplication MariaDB.
```
mysql -u racine -p
Entrez le mot de passe root MariaDB
AFFICHER LES VARIABLES GLOBALES COMME 'gtid_mode' ;
```
Assurez-vous que le résultat de la requête ci-dessus est ON ou ON_PERMISSIVE. Si vous obtenez OFF, exécutez cette commande pour activer GTID :
```
DÉFINIR GLOBAL gtid_mode=ON ;
```
Remarque :Si GTID était initialement désactivé, redémarrez le service MariaDB pour que cette modification soit effective.
Étape 2 : Créer un nouvel utilisateur pour la réplication
Créez un nouvel utilisateur que les serveurs esclaves peuvent utiliser pour se connecter au maître et obtenir des mises à jour. Cet utilisateur doit disposer du privilège REPLICATION SLAVE.
```
mysql -u racine -p
CRÉER UN UTILISATEUR 'repluser'@'%' IDENTIFIÉ PAR 'mot de passe fort' ;
GRANT RÉPLICATION ESCLAVE SUR *.* À 'repluser'@'%';
PRIVILÈGES FLUSH ;
```
Étape 3 – Configurer la réplication maître-maître MySQL
_a) Sur Maître 1 :_
- Arrêtez le service MariaDB :
```
sudo service mariadb arrêter
```
- Créez et ouvrez le fichier _my.cnf_ dans un éditeur de texte.
- Pour les systèmes basés sur Debian/Ubuntu :
```
sudo nano /etc/mysql/my.cnf
```
- Pour les systèmes basés sur RedHat/CentOS/Fedora :
```
sudo nano /etc/my.cnf
```
- Modifiez le fichier _my.cnf_ pour inclure la configuration suivante :
```
[mysqld]
ID de serveur
identifiant du serveur =1
Activer le mode GTID s'il n'est pas déjà activé
gtid_mode =activé
Lier à toutes les interfaces réseau
adresse de liaison =0.0.0.0
Configuration de la réplication
log-bin=/var/log/mysql/mariadb-bin
binlog_do_db=mydb # la base de données que vous souhaitez répliquer
Master1 recevra ses mises à jour de master2. Supprimez la ligne ci-dessous s'il s'agit du premier maître que vous configurez.
hôte_maître =192.168.1.20
Facultativement, si nécessaire (utile si vous essayez de récupérer un esclave après un crash) :
relay-log=/var/log/mysql/mariadb-relay-bin.log
relay-log-index=/var/log/mysql/mariadb-relay-bin.index
```
*Le server_id dans la configuration ci-dessus doit être un identifiant unique pour ce serveur maître.
*Le binlog_do_db spécifie la base de données à répliquer.
*Le master_host spécifie l'adresse IP ou le nom d'hôte de l'autre serveur maître si vous configurez une réplication double maître.
- Enregistrez et quittez le fichier de configuration _my.cnf_.
- Démarrez le service MariaDB :
```
sudo service mariadb démarrer
```
_b) Sur Maître 2 :_
- Répéter les mêmes étapes que pour le maître 1, sauf :
- Spécifiez un autre server_id (par exemple server-id=2)
- Spécifiez l'adresse IP ou le nom d'hôte du maître 1 comme master_host.
Étape 4 – Configurer l'esclave
_a) Sur l'esclave :_
- Arrêtez le service MariaDB :
```
sudo service mariadb arrêter
```
- Editez le fichier _my.cnf_ :
```
sudo nano /etc/mysql/my.cnf
```
- Assurez-vous que l'adresse de liaison est définie sur 0.0.0.0 afin que l'esclave puisse accepter les connexions des deux maîtres.
- Ajoutez les lignes suivantes :
```
[mysqld]
Définissez l'ID du serveur sur le même que Master1.
identifiant du serveur =1
gtid_mode =activé
log_slave_updates=1
```
- Enregistrez et quittez le fichier de configuration _my.cnf_.
- Démarrez le service MariaDB :
```
sudo service mariadb démarrer
```
- Connectez-vous à la base de données esclave :
```
mysql -u racine -p
```
- Configurer la réplication sur l'esclave :
```mysql
CHANGER LE MAÎTRE PAR
MASTER_HOST='master1_ip_address',
MASTER_USER='repluser',
MASTER_PASSWORD='mot de passe fort',
MASTER_AUTO_POSITION =1 ;
DÉMARRER L'ESCLAVE ;
```
_b) Surveiller l'état de la réplication :_
- Vérifiez l'état de la réplication sur les maîtres et l'esclave :
```mysql
AFFICHER LE STATUT D'ESCLAVE\G ;
```
L'état de la réplication doit montrer que l'esclave est connecté et se réplique à partir des maîtres.
|