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.