Android

Comment configurer mysql master

video tutorial replication mysql | AITIBOUREK

video tutorial replication mysql | AITIBOUREK

Table des matières:

Anonim

La réplication MySQL est un processus qui vous permet de copier automatiquement les données d'un serveur de base de données vers un ou plusieurs serveurs.

MySQL prend en charge un certain nombre de topologies de réplication, la topologie maître / esclave étant l'une des topologies les plus connues dans lesquelles un serveur de base de données agit comme maître, tandis qu'un ou plusieurs serveurs agissent comme esclaves. Par défaut, la réplication est asynchrone où le maître envoie des événements qui décrivent les modifications de la base de données à son journal binaire et les esclaves demandent les événements lorsqu'ils sont prêts.

Dans ce didacticiel, nous expliquerons comment configurer une réplication maître / esclave MySQL avec un serveur maître et un serveur esclave sur CentOS 7. Les mêmes étapes s'appliquent à MariaDB.

Ce type de topologie de réplication est mieux adapté au déploiement de réplicas en lecture pour la mise à l'échelle en lecture, la sauvegarde de bases de données en direct pour la reprise après sinistre et pour les travaux d'analyse.

Conditions préalables

Dans cet exemple, nous supposons que vous avez deux serveurs exécutant CentOS 7, qui peuvent communiquer entre eux sur un réseau privé. Si votre fournisseur d'hébergement ne fournit pas d'adresses IP privées, vous pouvez utiliser les adresses IP publiques et configurer votre pare-feu pour autoriser le trafic sur le port 3306 uniquement à partir de sources fiables.

Les serveurs de cet exemple ont les adresses IP suivantes:

Master IP: 192.168.121.59 Slave IP: 192.168.121.14

Installez MySQL

La valeur par défaut Les référentiels CentOS 7 n'incluent pas de packages MySQL, nous allons donc installer MySQL à partir de leur référentiel Yum officiel. Pour éviter tout problème, nous installerons la même version MySQL 5.7 sur les deux serveurs.

Installez MySQL sur les serveurs maître et esclave:

sudo yum localinstall sudo yum install mysql-community-server

Une fois l'installation terminée, démarrez le service MySQL et activez-le pour démarrer automatiquement au démarrage avec:

sudo systemctl enable mysqld sudo systemctl start mysqld

Lorsque le serveur MySQL démarre pour la première fois, un mot de passe temporaire est généré pour l'utilisateur racine MySQL. Pour trouver le mot de passe, utilisez la commande grep suivante:

sudo grep 'temporary password' /var/log/mysqld.log

Exécutez la commande mysql_secure_installation pour définir votre nouveau mot de passe root et améliorer la sécurité de l'instance MySQL:

mysql_secure_installation

Saisissez le mot de passe root temporaire et répondez Y (oui) à toutes les questions.

Le nouveau mot de passe doit comporter au moins 8 caractères et contenir au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial.

Configurer le serveur maître

Tout d'abord, nous allons configurer le serveur maître MySQL et apporter les modifications suivantes:

  • Définissez le serveur MySQL pour écouter sur l'IP privé Définissez un ID de serveur unique Activez la journalisation binaire.

Pour ce faire, ouvrez le fichier de configuration MySQL et ajoutez les lignes suivantes dans le section:

sudo nano /etc/my.cnf maître: /etc/my.cnf

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

Une fois terminé, redémarrez le service MySQL pour que les modifications prennent effet

sudo systemctl restart mysqld

L'étape suivante consiste à créer un nouvel utilisateur de réplication. Connectez-vous au serveur MySQL en tant qu'utilisateur root:

mysql -uroot -p

Depuis l'intérieur de l'invite MySQL, exécutez les requêtes SQL suivantes qui créeront l'utilisateur de replica et accorderont le privilège REPLICATION SLAVE à l'utilisateur:

CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; Assurez-vous de changer l'adresse IP avec votre adresse IP esclave. Vous pouvez nommer l'utilisateur comme vous le souhaitez.

Tout en restant dans l'invite MySQL, exécutez la commande suivante qui affichera le nom et la position du fichier binaire.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Prenez note du nom du fichier, 'mysql-bin.000001' et de la position '1427'. Vous aurez besoin de ces valeurs lors de la configuration du serveur esclave. Ces valeurs seront probablement différentes sur votre serveur.

Configurer le serveur esclave

Comme pour le serveur maître ci-dessus, nous apporterons les modifications suivantes au serveur esclave:

  • Configurer le serveur MySQL pour écouter sur l'IPSet privé un ID de serveur unique Activer la journalisation binaire

Ouvrez le fichier de configuration MySQL et modifiez les lignes suivantes:

sudo nano /etc/my.cnf esclave: /etc/my.cnf

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

Redémarrez le service MySQL:

sudo systemctl restart mysqld

L'étape suivante consiste à configurer les paramètres que le serveur esclave utilisera pour se connecter au serveur maître. Connectez-vous au shell MySQL:

mysql -uroot -p

Tout d'abord, arrêtez les threads esclaves:

STOP SLAVE;

Exécutez la requête suivante qui configurera l'esclave pour répliquer le maître:

CHANGE MASTER TO MASTER_HOST='192.168.121.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

Assurez-vous que vous utilisez la bonne adresse IP, le nom d'utilisateur et le mot de passe. Le nom et la position du fichier journal doivent être identiques aux valeurs que vous avez obtenues du serveur maître.

Une fois terminé, démarrez les threads esclaves.

START SLAVE;

Testez la configuration

À ce stade, vous devez disposer d'une configuration de réplication maître / esclave fonctionnelle.

Pour vérifier que tout fonctionne comme prévu, nous allons créer une nouvelle base de données sur le serveur maître:

mysql -uroot -p

CREATE DATABASE replicatest;

Connectez-vous au shell MySQL esclave:

mysql -uroot -p

Exécutez la commande suivante pour répertorier toutes les bases de données:

SHOW DATABASES;

Vous remarquerez que la base de données que vous avez créée sur le serveur maître est répliquée sur l'esclave:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Conclusion

Dans ce tutoriel, nous vous avons montré que vous créez une réplication MySQL maître / esclave sur CentOS 7.

N'hésitez pas à laisser un commentaire si vous avez des questions.

centos mysql mariadb