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

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

Mysql La réplication maître-esclave est une procédure qui permet de reproduire ou de copier les fichiers de base de données sur un ou plusieurs nœuds d'un réseau. Cette configuration fournit une redondance et une tolérance aux défauts de telle sorte qu'en cas d'échec dans le 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 tous ne seront pas perdus dans toute é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 d'esclave réplication sur un Ubuntu 18.04 système.

Conditions préalables

Dans la configuration, nous allons avoir deux serveurs en cours d'exécution Ubuntu 18.04 avec les adresses IP suivantes.

Master Server: dix.128.0.28 Serveur esclave: dix.128.0.29 

Plongeons maintenant et voyons comment nous pouvons configurer le Maître d'esclave Configuration de la réplication sur Ubuntu.

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

Ubuntu Les référentiels contiennent la version 5.7 de Mysql. Pour profiter de toute nouvelle fonctionnalité et éviter les problèmes potentiels, vous devez installer la dernière version MySQL. Mais d'abord, mettons à jour les deux nœuds en utilisant la commande APT suivante.

$ sudo apt mise à jour 
Mettre à jour le logiciel Ubuntu

À installer Mysql Sur les deux nœuds, exécutez la commande.

$ sudo apt installer mysql-server mysql-client 
Installez MySQL Server dans Ubuntu

Ensuite, ouvrez le mysql fichier de configuration.

$ sudo vim / etc / mysql / mysql.confli.d / mysqld.CNF 

Sur le Nœud maître, Faites défiler et localisez le adhésion à la liaison attribut comme indiqué ci-dessous.

Bind-Address = 127.0.0.1 

Modifiez l'adresse de bouclage pour correspondre à l'adresse IP du Nœud maître.

Bind-Address = 10.128.0.28 
Définir l'adresse IP MySQL Master

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

server-id = 1 
Définissez l'ID de serveur MySQL sur Master

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

log_bin = / var / log / mysql / mysql-bin.log_bin_index = / var / log / mysql / mysql-bin.enregistrer.index relay_log = / var / log / mysql / mysql-relay-bin reay_log_index = / var / log / mysql / mysql-relay-bin.indice 

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

$ sudo systemctl redémarrer mysql 

Pour vérifier que MySQL Server s'exécute comme prévu, émettez la commande.

$ sudo systemctl status mysql 
Redémarrez et vérifiez le statut MySQL

Parfait! MySQL Server est en cours d'exécution comme prévu!

Étape 2: Créez 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 y parvenir, connectez-vous au serveur MySQL comme indiqué.

$ sudo mysql -u root -p 

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

mysql> Créer l'utilisateur 'réplication_user' @ 'dix.128.0.29«Identifié par« réplique_password »; mysql> Slave de réplication de la subvention sur *.* À 'réplication_user' @ 'dix.128.0.29';; 
Créer un utilisateur de réplication MySQL

Ensuite, exécutez la commande suivante.

mysql> Afficher le statut maître \ g 

La sortie doit être similaire à ce que vous pouvez voir ci-dessous.

Vérifiez le statut maître mysql

Soyez vif et notez le mysql-bin.000002 valeur et l'ID de position 1643. Ces valeurs seront cruciales lors de la mise en place du serveur d'esclaves.

Étape 3: Configurez le serveur d'esclaves MySQL

Dirigez-vous vers le serveur esclave et comme nous l'avons fait avec le Serveur principal, Ouvrez le fichier de configuration MySQL.

$ sudo vim / etc / mysql / mysql.confli.d / mysqld.CNF 

Tout comme le serveur principal, procéder à la modification des lignes suivantes.

Bind-Address = 10.128.0.29 
Lier l'adresse IP MySQL sur l'esclave

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

serveur-id = 2 
Définissez l'ID de serveur MySQL sur Slave

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

log_bin = / var / log / mysql / mysql-bin.log_bin_index = / var / log / mysql / mysql-bin.enregistrer.index relay_log = / var / log / mysql / mysql-relay-bin reay_log_index = / var / log / mysql / mysql-relay-bin.indice 

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

$ sudo systemctl redémarrer mysql 

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

Ensuite, connectez-vous à la coque MySQL comme indiqué.

$ sudo mysql -u root -p 

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

mysql> Arrêter l'esclave; 

Pour permettre le serveur d'esclaves Pour reproduire le Serveur principal, exécuter la commande.

mysql> Changer de maître en master_host = '10.128.0.28 ', Master_User =' Replication_User ', Master_PassWord =' ​​[Email Protected] ', Master_Log_File =' MySQL-BIN.000002 ', master_log_pos = 1643; 
Autoriser la réplication MySQL sur le serveur esclave

Si vous êtes assez vif, vous observerez que nous avons utilisé le mysql-bin.00002 ID de valeur et de position 1643 Affiché plus tôt après avoir créé l'utilisateur de réplication des esclaves.

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

Plus tard, commencez le fil que vous aviez arrêté plus tôt.

mysql> Commencer l'esclave; 

Étape 4: Vérifiez la réplication MySQL Master-Slave

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

Connectez-vous à mysql dans le Serveur principal.

$ sudo mysql -u root -p 

Créons une base de données de test. Dans ce cas, nous créerons une base de données appelée réplication_db.

mysql> Créer la base de données réplication_db; 

Maintenant, connectez-vous à votre instance mysql dans le serveur d'esclaves.

$ sudo mysql -u root -p 

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

mysql> Afficher des bases de données; 
Vérifiez la réplication maître-esclave de MySQL

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

Conclusion

Dans ce guide, vous avez appris à configurer un MySQL Master-Slave Configuration de la réplication sur Ubuntu 18.04.