Dans ce didacticiel, nous allons vous montrer comment configurer la réplication MySQL de base sur deux serveurs CentOS 7, mais les mêmes étapes devraient fonctionner sur tous les systèmes basés sur RPM. Nous utiliserons deux serveurs virtuels CentOS 7 de test pour ce tutoriel avec les adresses IP suivantes :
MAITRE : 123.456.789.1
ESCLAVE : 123.456.789.2
Serveur maître :
1. Connectez-vous via SSH
Connectez-vous au serveur maître en tant qu'utilisateur root
racine ssh@adresse_IP
2. Installer le serveur MySQL
et installez le serveur MySQL s'il n'est pas déjà installé
yum installer mysql-server mysql
3. Démarrez le serveur MySQL
Démarrez le serveur MySQL et activez-le pour qu'il démarre au démarrage
systemctl démarrer mysqlsystemctl activer mysql
4. Configurer le serveur MySQL
Ensuite, ouvrez le fichier de configuration MySQL avec un éditeur de texte et ajoutez les lignes suivantes
vi /etc/mon.cnf
id-serveur =1binlog-do-db=databaserelay-log =mysql-relay-binrelay-log-index =mysql-relay-bin.indexlog-bin =mysql-bin
N'oubliez pas de remplacer "database ‘ avec le nom réel de la base de données que vous souhaitez répliquer sur le serveur esclave.
5. Redémarrez le serveur MySQL
Enregistrez le fichier de configuration et redémarrez le serveur MySQL pour que les modifications prennent effet
systemctl redémarre mysql
6. Créez un utilisateur MySQL pour le serveur esclave et configurez-le
Connectez-vous au serveur MySQL en tant qu'utilisateur root et créez un utilisateur qui sera utilisé par l'esclave
mysql -u root -p
mysql> ACCORDER L'ESCLAVE DE RÉPLICATION SUR *.* À 'slaveuser'@'%' IDENTIFIÉ PAR 'MOT DE PASSE'mysql> FLUSH PRIVILEGES;mysql> FLUSH TABLES WITH READ LOCK;mysql> SHOW MASTER STATUS;mysql> SHOW MASTER STATUS; +------------------+----------+-------------+---- --------------+| Fichier | Poste | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+-- ----------------+| mysql-bin.000001 | 245 | base de données | |+------------------+----------+-------------+--- ---------------+1 ligne dans l'ensemble (0.00 sec)mysql> exit
Nous aurons besoin des coordonnées du maître qui seront utilisées pour le serveur esclave, alors notez-les.
Fichier : mysql-bin.000001
Position : 245
Remplacez 'MOT DE PASSE ‘ avec un vrai mot de passe fort.
Maintenant, si la base de données que vous souhaitez répliquer n'est pas vide, créez un vidage à partir de la base de données
mysqldump -u root -p --master-data database> /root/database.sql
et transférez le fichier de vidage sur le serveur esclave
rsync -Waq -e ssh /root/database.sql 123.456.789.2:/root
Serveur esclave :
7. Connectez-vous via SSH et installez le serveur MySQL sur le serveur esclave
L'étape suivante consiste à configurer le serveur esclave. Connectez-vous au serveur esclave via SSH en tant qu'utilisateur root et installez le serveur MySQL comme nous l'avons fait sur le serveur maître.
Une fois le serveur MySQL installé et démarré, ouvrez son fichier de configuration et ajoutez les lignes suivantes :
vi /etc/mon.cnf
server-id =2master-host=123.456.789.1master-connect-retry=60master-user=slaveusermaster-password=PASSWORDreplicate-do-db=databaserelay-log =mysql-relay-binlog-bin =mysql-bin8. Redémarrez le serveur MySQL
Enregistrez le fichier et redémarrez le serveur MySQL pour que les modifications prennent effet.
systemctl redémarre mysqlImportez le fichier de vidage MySQL que nous avons créé sur le serveur maître
mysql -u root -p9. Configurer le serveur MySQL
Connectez-vous à MySQL en tant qu'utilisateur root, arrêtez l'esclave et configurez-le où rechercher le "fichier journal principal"
mysql -u root -pmysql> esclave stop;mysql> CHANGE MASTER TO MASTER_HOST='123.456.789.1', MASTER_USER='slaveuser', MASTER_PASSWORD='PASSWORD', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245;mysql> esclave commencer ;Utilisez le nom d'utilisateur et le mot de passe MySQL que nous avons créés sur le serveur maître.
Vous pouvez vérifier l'état de l'esclave en exécutant la commande MySQL suivante :
mysql> affiche le statut de l'esclave ;*************************** 1. ligne ***************** ********** Slave_IO_State :attend que le maître envoie l'événement Master_Host :123.456.789.1 Master_User :slaveuser Master_Port :3306 Master_Log_File :mysql-bin.000001 Slave_IO_Running :oui Slave_SQL_Running :oui Replicate_Do_DB :base de donnéesSi 'Slave_IO_State ' signale 'Attente que le maître envoie l'événement' la réplication est réussie.
C'est tout. C'est si facile. Si vous avez besoin de plus d'informations sur la configuration d'un maître de réplication, vous pouvez le trouver sur le site officiel de MySQL.
Bien sûr, vous n'êtes pas obligé de configurer la réplication MySQL sur CentOS, si vous utilisez l'un de nos services d'hébergement MySQL, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de configurer la réplication MySQL sur CentOS pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande. Vous pouvez également consulter les nouvelles mises à jour sur Comment installer MySQL sur CentOS 7.
PS. Si vous avez aimé cet article sur la configuration de la réplication MySQL sur CentOS, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.