GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer la réplication MySQL sur CentOS

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-bin 

8. Redémarrez le serveur MySQL

Enregistrez le fichier et redémarrez le serveur MySQL pour que les modifications prennent effet.

systemctl redémarre mysql

Importez le fichier de vidage MySQL que nous avons créé sur le serveur maître

mysql -u root -p  

9. 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 -p
mysql> 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ées

Si '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.


Cent OS
  1. Comment configurer un serveur SFTP sur CentOS

  2. Comment installer le serveur de base de données MySQL 8 sur CentOS 8

  3. Comment installer Percona Server sur CentOS 7

  4. Comment configurer le serveur SysLog sur CentOS 7 / RHEL 7

  5. Comment configurer le serveur NFS sur CentOS 7 / RHEL 7

Comment configurer le serveur NFS sur CentOS 8 / RHEL 8

Comment configurer un serveur SVN sur CentOS

Comment installer MySQL 8 sur CentOS 8

Comment configurer la réplication MySQL dans RHEL/Centos

Comment configurer HAProxy sur CentOS 8

Comment configurer la réplication maître-esclave MySQL sur RHEL 7 ?