GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer la réplication MySQL dans RHEL/Centos

Dans cet article, je vais montrer comment configurer la réplication MySQL entre les serveurs de base de données maître et esclave. Cela utilisera deux serveurs, dont l'un répliquera les données de l'autre (maître vers esclave). Utilisez cette configuration si vous souhaitez améliorer la fiabilité et les performances de la configuration de vos systèmes.

Veuillez vous référer à l'un de nos autres tutoriels si vous avez besoin d'aide pour configurer un système basé sur RHEL.

Pour ce guide, nous utiliserons cette configuration de laboratoire de réplication MySQL.

MySQL Master - 192.168.56.1
MySQL Slave  - 192.168.56.2 

Étape 1 :Installer MySQL sur le serveur maître et esclave

Commencez par installer la base de données MySQL sur les serveurs maître et esclave.

$ sudo dnf install @mysql

or

$ sudo yum install mysql-server

Une fois l'installation terminée, démarrez le service de base de données.

$ sudo systemctl start mysqld

Ensuite, activez-le pour démarrer avec systemctl. L'activer indiquera au service de démarrer dans la séquence de démarrage.

$ sudo systemctl enable mysqld

Confirmez ensuite que le serveur de base de données MySQL est en cours d'exécution :

$ sudo systemctl status mysqld

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

Il est recommandé de sécuriser votre nouveau serveur de base de données avec la commande suivante :

$ sudo mysql_secure_installation

Pour commencer, vous devrez définir le mot de passe root MySQL. Assurez-vous d'utiliser un mot de passe racine fort, de préférence un mot de passe qui contient une combinaison de caractères majuscules, minuscules, spéciaux et numériques et qui compte plus de 8 caractères.

Pour les invites restantes, tapez "Y" pour configurer le serveur de base de données avec les paramètres recommandés.

Une fois que vous avez terminé d'installer et de renforcer MySQL sur le nœud maître et esclave, l'étape suivante consiste à configurer le nœud maître.

Étape 3 :Configurer le nœud maître (serveur)

Maintenant, nous configurons le nœud maître et lui accordons l'accès au nœud esclave. Tout d'abord, nous devons éditer le fichier de configuration mysql-server.cnf.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Ajoutez les lignes suivantes sous la section [mysqld].

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

Une fois terminé, enregistrez les modifications et quittez. Redémarrez ensuite le serveur MySQL.

$ sudo sysemctl restart mysqld

Ensuite, connectez-vous au shell MySQL.

$ sudo mysql -u root -p

Exécutez les commandes suivantes pour créer un utilisateur de base de données qui sera utilisé pour lier le maître et l'esclave pour la réplication.

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

Appliquez les modifications et quittez le serveur MySQL.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Vérifiez l'état du maître.

mysql> SHOW MASTER STATUS\G

Prenez note du nom de fichier et de la position. Vous en aurez besoin plus tard lors de la configuration de l'esclave pour la réplication. Dans notre cas, nous avons le nom de fichier binlog.000001 et la position 854.

Étape 4 :Configurer le nœud esclave (serveur)

Maintenant, retournez au nœud esclave. Encore une fois, éditez le fichier de configuration mysql-server.cnf.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Comme précédemment, collez ces lignes sous la section [mysqld]. Modifiez l'adresse IP pour qu'elle corresponde à l'adresse IP de l'esclave. Attribuez également un ID de serveur différent. Ici, nous lui avons attribué la valeur 2.

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

Enregistrez les modifications et quittez le fichier. Redémarrez ensuite le serveur de base de données.

$ sudo systemctl restart mysqld

Pour configurer le nœud esclave pour répliquer à partir du nœud maître, connectez-vous au serveur MySQL de l'esclave.

$ sudo mysql -u root -p

Commencez par arrêter les threads de réplication :

mysql> STOP SLAVE;

Exécutez ensuite la commande suivante pour configurer le nœud esclave afin de répliquer les bases de données du maître.

mysql> CHANGE MASTER TO
     MASTER_HOST='192.168.56.1' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='Password' ,
     MASTER_LOG_FILE='binlog.000001' ,
     MASTER_LOG_POS=854;

Les indicateurs MASTER LOG FILE et MASTER LOG POS correspondent aux valeurs de fichier et de position du nœud maître à la fin de l'étape 1.

MASTER HOST, MASTER USER et MASTER PASSWORD sont respectivement l'adresse IP principale, l'utilisateur de réplication et le mot de passe.

Les threads de réplication esclaves doivent alors être lancés :

mysql> START SLAVE;

Étape 4 :Tester la réplication maître-esclave MySQL

Maintenant, pour tester si la réplication entre le nœud maître et esclave fonctionne, connectez-vous au serveur de base de données MySQL sur le nœud maître :

$ sudo mysql -u root -p

Créer une base de données de test. Ici, notre base de données de test s'appelle replication_db.

mysql> CREATE DATABASE replication_db;

Vérifiez l'existence de la base de données.

mysql> SHOW DATABASES;

Accédez maintenant au nœud esclave, connectez-vous au serveur MySQL et vérifiez que la base de données de réplication existe. Nous pouvons voir que la base de données est présente dans la sortie ci-dessous. Cela indique que la réplication du nœud maître vers le nœud esclave a eu lieu.

mysql> SHOW DATABASES;

Cent OS
  1. Comment configurer la configuration MySQL Master-Slave à l'aide des nœuds CentOS 7 ?

  2. Comment installer MySQL 8.0 sur CentOS/RHEL 8

  3. Comment configurer la réplication MySQL sur CentOS

  4. Comment configurer mutt dans CentOS/RHEL

  5. Comment configurer un serveur proxy squid sur CentOS/RHEL 7

Comment configurer Icinga Web 2 sur CentOS 8 / RHEL 8

Comment installer Cacti sur CentOS 6 / RHEL 6

Comment configurer un Chef 12 sur CentOS 7 / RHEL 7

Comment installer MySQL 8.0 sur CentOS 8 / RHEL 8

Comment configurer le serveur SysLog centralisé sur CentOS 8 / RHEL 8

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