Maison  >  Article  >  base de données  >  MySQL implémente la fonction de réplication maître-esclave

MySQL implémente la fonction de réplication maître-esclave

步履不停
步履不停original
2019-06-19 14:43:582123parcourir

MySQL implémente la fonction de réplication maître-esclave

Description de l'environnement

centos7.3, MySQL5.7

Avant-propos

Référence d'installation MySQL article précédent https://www .jianshu.com/p/452aa99c7476 a une explication.

Concepts de base

Les capacités de réplication intégrées de MySQL constituent la base de la création d'applications à grande échelle et hautes performances. Distribuez des centaines de millions de données MySQL sur plusieurs systèmes. Ce mécanisme de distribution est obtenu en copiant les données d'un certain hôte MySQL vers d'autres hôtes (esclave) et en l'exécutant à nouveau. Lors de la réplication, un serveur agit en tant que serveur et un ou plusieurs autres serveurs agissent en tant qu'esclaves. Le maître écrit des mises à jour dans le journal binaire et maintient un index des fichiers pour suivre la rotation des journaux. Ces journaux enregistrent les mises à jour envoyées aux serveurs esclaves. Lorsqu'un esclave se connecte au maître, il informe le maître de l'emplacement de la dernière mise à jour réussie que l'esclave a lu dans le journal, l'esclave reçoit toutes les mises à jour survenues depuis, puis bloque, etc. Le maître notifie les nouvelles mises à jour. Veuillez noter que lorsque vous répliquez, toutes les mises à jour des tables de réplication doivent être effectuées sur le serveur maître. Sinon, vous devez faire attention à éviter les conflits entre les mises à jour effectuées par les utilisateurs sur les tables du serveur maître et les mises à jour des tables sur le serveur

Implémentation de la réplication maître-esclave

Un, Modifier le serveur maître

Si MySQL est installé conformément à l'article que j'ai écrit, alors le fichier de configuration my.cnf se trouve dans le répertoire /etc/. Si ce n'est pas le cas, vous pouvez le rechercher via la commande Whereis. Ajoutez la configuration suivante sous le fichier de configuration my.cnf

server_id=1 #指定MySQL的id
log-bin=mysql-bin #开启二进制日志文件

2. Créez un compte de réplication

Exécutez cette commande dans le serveur principal (tous sont autorisés ici) Pour l'accès à l'adresse, il est recommandé de la définir sur l'adresse du serveur esclave)

GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Abc123...';

3. Modifier le serveur esclave

server_id=2
log-bin=mysql-bin
binlog_do_db=db_test#表示要同步的数据库

Description : binlog- ignore-db=test signifie base de données de test non synchronisée binlog_do_db=db_test #Représente la base de données à synchroniser

4. Redémarrez MySQL

Redémarrez le serveur maître et le serveur esclave

service mysqld restart

5. Vérifiez l'état du serveur maître

show master status

Résultats Comme suit :

Certaines informations doivent être enregistrées ici, qui doivent être utilisées lors de la configuration du serveur esclave 6. Configurez. le serveur esclave (se connecter au serveur maître)

change master to master_host='192.168.74.129',master_user='replication',master_password='Abc123...',master_log_file='mysql-bin.000001',master_log_pos=2041;

master_host est l'adresse IP du serveur maître master_port=3306 (Il n'y a pas de configuration ici, la valeur par défaut est 3306) master_user : utilisateur autorisé du serveur maître, c'est-à-dire l'utilisateur créé avant Maître master_password : Utilisateur autorisé du serveur maître mot de passe correspondant master_log_file : Nom du fichier binlog maître master_log_pos : Valeur de position dans le fichier binlog maître concernant la valeur de position, voici une note : Si le serveur maître a déjà beaucoup de données, vous en avez d'abord besoin pour sauvegarder les données du serveur maître sur le serveur esclave, puis utilisez la commande show master status pour enregistrer l'emplacement où la synchronisation doit être démarrée. #       7. Démarrez la réplication et exécutez

start slave

sur le serveur esclave. La commande à arrêter est : stop slave; Les deux résultats encerclés sont oui, indiquant que la configuration de réplication maître-esclave est réussie. Si la configuration échoue, vous pouvez vérifier les informations d'échec dans le fichier journal MySQL, ou vous pouvez vérifier un bref message d'erreur via la commande ci-dessus :

下载 (2).jpg

Ceci est le maître- serveur esclave que je viens de configurer La raison principale de l'erreur est que l'UUID du serveur MySQL est en conflit. La raison est que mon serveur esclave est copié à partir du serveur maître. Allez simplement dans /var/lib/mysql/auto.cnf et modifiez-le. #Vérifiez l'état actuel des résultats maître-esclave :

下载 (3).jpg

Créez un nouveau tableau ci-dessous pour voir s'il peut être synchronisé :

#Affichez le serveur esclave

下载 (5).jpg

下载 (6).jpgVous pouvez voir qu'il a été synchronisé.

Pour plus d'articles techniques liés à MySQL, veuillez visiter la colonne Tutoriel MySQL pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn