MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment configurer la réplication maître-esclave MySQL sur Ubuntu 18.04

MySQL la réplication maître-esclave est une procédure qui permet de répliquer ou de copier des fichiers de base de données sur un ou plusieurs nœuds d'un réseau. Cette configuration offre une redondance et une tolérance aux pannes telles qu'en cas de panne du nœud maître , les bases de données peuvent toujours être récupérées dans le nœud esclave . Cela donne aux utilisateurs la tranquillité d'esprit que tout ne sera pas perdu en aucune éventualité car une réplique des bases de données peut toujours être récupérée à partir d'un serveur différent.

Dans ce guide, vous allez apprendre à effectuer un MySQL base de données Maître-esclave réplication sur un Ubuntu 18.04 système.

Prérequis

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

Master server: 10.128.0.28
Slave server: 10.128.0.29

Plongeons maintenant et voyons comment nous pouvons configurer le maître-esclave configuration de la réplication sur Ubuntu .

Étape 1 :Installez MySQL sur les nœuds maître et esclave

Ubuntu les référentiels contiennent la version 5.7 de MySQL . Pour profiter de toutes les nouvelles fonctionnalités et éviter les problèmes potentiels, vous devez installer la dernière version de MySQL. Mais d'abord, mettons à jour les deux nœuds à l'aide de la commande apt suivante.

$ sudo apt update

Pour installer MySQL sur les deux nœuds, exécutez la commande.

$ sudo apt install mysql-server mysql-client

Ensuite, ouvrez le mysql fichier de configuration.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Sur le nœud maître , faites défiler et localisez bind-address attribut comme indiqué ci-dessous.

bind-address 	 =127.0.0.1

Modifiez l'adresse de bouclage pour qu'elle corresponde à l'adresse IP du nœud maître .

bind-address  	=10.128.0.28

Ensuite, spécifiez une valeur pour le server-id attribut dans le [mysqld] section. Le numéro que vous choisissez ne doit correspondre à aucun autre numéro d'ID de serveur. Attribuons la valeur 1 .

server-id	 =1

À la toute fin du fichier de configuration, copiez et collez les lignes ci-dessous.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Quittez le fichier de configuration et redémarrez le service MySQL pour que les modifications prennent effet sur le nœud maître.

$ sudo systemctl restart mysql

Pour vérifier que le serveur MySQL fonctionne comme prévu, lancez la commande.

$ sudo systemctl status mysql

Parfait! Le serveur MySQL fonctionne comme prévu !

Étape 2 :Créer un nouvel utilisateur pour la réplication sur le nœud maître

Dans cette section, nous allons créer un utilisateur de réplication dans le nœud maître . Pour ce faire, connectez-vous au serveur MySQL comme indiqué.

$ sudo mysql -u root -p

Ensuite, continuez et exécutez les requêtes ci-dessous pour créer un utilisateur de réplique et accorder l'accès à l'esclave de réplication. N'oubliez pas d'utiliser votre adresse IP.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Ensuite, exécutez la commande suivante.

mysql> SHOW MASTER STATUS\G

Le résultat devrait ressembler à ce que vous pouvez voir ci-dessous.

Soyez attentif et notez le mysql-bin.000002 valeur et l'ID de poste 1643 . Ces valeurs seront cruciales lors de la configuration du serveur esclave .

Étape 3 :Configurer le serveur esclave MySQL

Dirigez-vous vers le serveur esclave et comme nous l'avons fait avec le serveur maître , ouvrez le fichier de configuration MySQL.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Tout comme le serveur maître , procédez à la modification des lignes suivantes.

bind-address           = 10.128.0.29

Comme précédemment, spécifiez une valeur pour le server-id attribut dans le [mysqld] section. Cette fois, sélectionnez une valeur différente. Allons-y avec 2 .

server-id		=2 

Encore une fois, collez les lignes ci-dessous à la toute fin du fichier de configuration.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Redémarrez ensuite le serveur MySQL sur le nœud esclave.

$ sudo systemctl restart mysql

Une fois terminé, enregistrez et quittez l'éditeur de texte

Ensuite, connectez-vous au shell MySQL comme indiqué.

$ sudo mysql -u root -p

Dans cette étape, vous devrez effectuer une configuration qui permettra au serveur esclave pour se connecter au serveur maître . Mais d'abord, arrêtez les threads esclaves comme indiqué.

mysql> STOP SLAVE; 

Pour autoriser le serveur esclave pour répliquer le serveur maître , exécutez la commande.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Si vous êtes assez enthousiaste, vous remarquerez que nous avons utilisé le mysql-bin.00002 valeur et ID de position 1643 précédemment affiché après la création de l'utilisateur de réplication esclave.

De plus, l'adresse IP, l'utilisateur de réplication et le mot de passe du serveur maître ont été utilisés.

Plus tard, démarrez le fil que vous aviez précédemment arrêté.

mysql> START SLAVE;

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

Pour vérifier si la configuration fonctionne bien comme prévu, nous allons créer une nouvelle base de données sur le maître et vérifier si elle a été répliquée sur le serveur MySQL Slave.

Connectez-vous à MySQL dans le serveur maître .

$ sudo mysql -u root -p

Créons une base de données de test. Dans ce cas, nous allons créer une base de données appelée replication_db .

mysql> CREATE DATABASE replication_db;

Maintenant, connectez-vous à votre instance MySQL dans le serveur esclave .

$ sudo mysql -u root -p

Répertoriez maintenant les bases de données à l'aide de la requête.

mysql> SHOW DATABASES;

Vous remarquerez la base de données que vous avez créée sur le master a été répliqué sur esclave . Génial ! Votre réplication MySQL maître-esclave fonctionne comme prévu ! Vous pouvez désormais être assuré qu'en cas de défaillance, des copies des fichiers de base de données seront répliquées sur le serveur esclave.

Conclusion

Dans ce guide, vous avez appris à configurer un Maître-esclave MySQL configuration de la réplication sur Ubuntu 18.04 .