Recherche de site Web

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


La Réplication MySQL est un processus dans lequel les données d'un serveur sont automatiquement copiées ou répliquées sur un autre serveur de sauvegarde en temps réel. La réplication offre redondance et tolérance aux pannes et donne à l'utilisateur la certitude que même après une panne du serveur maître, les données peuvent toujours être récupérées.

Dans ce tutoriel, vous allez apprendre à configurer et mettre en place une réplication maître-esclave MySQL sur un Linux RHEL 8.

Conditions préalables

Dans la configuration, nous allons avoir deux serveurs exécutant RHEL 8 avec les adresses IP suivantes.

Master = 173.82.120.14
Slave  = 173.82.115.165

Voyons maintenant comment configurer la configuration de la réplication maître-esclave MySQL sur RHEL 8 Linux.

Étape 1 : Installer MySQL sur les serveurs maître et esclave

1. La dernière version de MySQL 8.x est déjà incluse dans le référentiel par défaut de RHEL 8 et vous pouvez l'installer en utilisant ce qui suit miam commande.

yum -y install @mysql

Étape 2 : Sécuriser MySQL sur les serveurs maître et esclave

Après l'installation, vous devez maintenant démarrer le service MySQL que vous venez d'installer et le faire démarrer automatiquement à chaque démarrage du serveur. Par conséquent, utilisez la commande suivante.

systemctl enable mysqld
systemctl start mysqld

Ensuite, vous devez sécuriser votre installation MySQL en exécutant le script de sécurité fourni avec plusieurs opérations basées sur la sécurité telles que la définition du mot de passe root, la suppression des utilisateurs anonymes, l'interdiction de la connexion root à distance, la suppression de la base de données de test et le privilège de rechargement.

mysql_secure_installation

Continuez avec le reste de l'invite et répondez Oui à toutes les questions. Configurez donc le serveur selon les meilleures pratiques de sécurité.

Étape 3 : Configuration du serveur maître MySQL

Pour commencer avec la configuration du serveur Maître, continuez et ouvrez le fichier de configuration MySQL en tapant la commande suivante.

sudo vim /etc/my.cnf

Dans la section mysqld, ajoutez les lignes comme indiqué ci-dessous.

bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin

Enfin, redémarrez le service MySQL.

sudo systemctl restart mysqld

Nous allons maintenant créer un utilisateur de réplication. Par conséquent, connectez-vous à votre serveur maître MySQL en tant qu'utilisateur root et fournissez le mot de passe.

sudo mysql -u root -p

Exécutez maintenant les commandes suivantes pour créer l'utilisateur réplica tout en accordant en même temps l'accès esclave à l'utilisateur. N'oubliez pas d'utiliser l'adresse IP de votre machine.

mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';

Maintenant, vous allez taper la commande suivante qui imprimera le nom et la position du fichier binaire.

mysql> SHOW MASTER STATUS\G

N'oubliez pas de prendre note du nom de fichier résultant msql-bin.000002 et de sa position 939.

Étape 4 : Configuration du serveur esclave MySQL

Tout comme pour le processus de configuration du maître, vous devez apporter les modifications suivantes au fichier de configuration de l'esclave MySQL.

sudo vim  /etc/my.cnf

Ajoutez les lignes suivantes dans le fichier de configuration sous la section mysqld.

bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin

Redémarrez le serveur.

sudo systemctl restart mysqld

L'étape suivante consiste maintenant à configurer le serveur esclave pour qu'il se réplique à partir du serveur maître. Connectez-vous au serveur MySQL.

sudo mysql -u root -p

Tout d’abord, arrêtez les threads de réplication.

mysql> STOP SLAVE;

Maintenant, exécutez la requête suivante qui configurera l'esclave pour qu'il se réplique à partir du serveur maître.

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='Jupiter@2030' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;

Assurez-vous que vous utilisez le nom d'utilisateur et le mot de passe IP corrects. Utilisez également le nom de fichier et la position que vous avez obtenus du serveur maître.

Enfin, tapez la commande suivante pour démarrer les threads esclaves.

mysql> START SLAVE;

Étape 5 : test de la réplication maître-esclave MySQL

À ce stade, vous avez terminé la configuration des serveurs maître et esclave. Il faut maintenant vérifier si la configuration fonctionne et si la réplication peut avoir lieu.

Pour ce faire, rendez-vous sur le serveur maître et connectez-vous au serveur de base de données MySQL.

sudo mysql -u root -p

Créez un exemple de base de données.

mysql> CREATE DATABASE replication_database;

Dirigez-vous maintenant vers le serveur Slave et connectez-vous à nouveau au serveur de base de données MySQL.

sudo mysql -u root -p

Répertoriez maintenant toutes les bases de données à l’aide de la commande suivante.

mysql> SHOW DATABASES;

Si vous voyez la base de données créée, alors la configuration de la Réplication maître-esclave MySQL fonctionne.

Conclusion

La réplication est un processus assez simple qui peut être facilement réalisé. Dans ce guide, vous avez appris comment créer une réplication d'un maître MySQL vers un esclave dans un Linux RHEL 8.