Comment configurer la réplication maître-esclave de MySQL sur Ubuntu 18.04
- 4282
- 20
- Jeanne Dupont
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 à jourMettre à jour le logiciel Ubuntu
À installer Mysql Sur les deux nœuds, exécutez la commande.
$ sudo apt installer mysql-server mysql-clientInstallez 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.28Dé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 = 1Dé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 mysqlRedé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 mysqlSoyez 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.29Lier 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 = 2Dé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.