Maison  >  Article  >  base de données  >  Comment implémenter la réplication de données synchronisées MySQL

Comment implémenter la réplication de données synchronisées MySQL

王林
王林avant
2023-05-26 15:22:261382parcourir

La fonction de réplication de MySQL peut synchroniser les données d'une base de données vers plusieurs autres bases de données. La première est généralement appelée base de données maître (master) et la seconde est appelée base de données esclave (slave). Le processus de réplication MySQL utilise une méthode asynchrone, mais le délai est très faible et synchronisé en quelques secondes.

1. Principes de base de la réplication synchrone des données

1. Les modifications de données qui se produisent sur la bibliothèque principale sont enregistrées dans le journal binaire Binlog
2 Le thread IO de la bibliothèque esclave copie le Binlog de la bibliothèque principale sur son propre relais. log Journal de relais
3 .Le thread SQL de la bibliothèque esclave réalise la réplication des données en lisant et en rejouant le journal de relais

Comment implémenter la réplication de données synchronisées MySQL

La réplication MySQL a trois modes : niveau d'instruction, niveau de ligne et niveau mixte. Différents niveaux de réplication amènent le serveur maître à générer différentes formes de fichiers journaux binaires.

2. Exemple de données de synchronisation

Système d'exploitation : centos7
Base de données : mysql8
Maître (maître) : 192.168.0.101
Esclave : 192.168.0.102

1. Modifier le fichier de configuration mysql maître-esclave

Configuration de l'hôte mon. cnf

[mysqld] 
# 服务器标识,每个服务器不能一样
server_id=101
# 开启日志文件
log_bin=binlog 
# 普通用户只能读 OFF是关闭状态
read_only=off 
# 超级用户只能读 OFF是关闭状态
super_read_only=off

Configuration de l'esclave

[mysqld]
# 服务器标识
server_id=102
# 启用binlog日志,并指定文件名前缀
log_bin=binlog
# 普通用户只能读 on是开启状态 
read_only=on 
# 超级用户只能读 on是开启状态 
super_read_only=on

Redémarrez le service

systemctl restart mysqld

2 L'hôte établit un compte de synchronisation et vérifie les informations sur l'état de la base de données principale

Connectez-vous à la base de données et créez un compte

create user repl identified with mysql_native_password by 'repl123';
grant replication slave on *.* to repl;
flush privileges;

Affichez l'état principal de la base de données principale et obtenez le nom du fichier journal et les informations de décalage

Comment implémenter la réplication de données synchronisées MySQL

3. Configuration de la synchronisation de l'esclave

Copiez l'opération de journal binaire de l'hôte (une partie des données est vérifiée en vérifiant l'état principal de la bibliothèque principale)
Le compte de synchronisation de l'hôte : source_user
Mot de passe : source_password
Port : source_port
Fichier journal : source_log_file
Offset : source_log_pos

change replication source to source_host='192.168.0.101', source_user='repl', source_password='repl123', source_port=3306,source_log_file='binlog.000001', source_log_pos=154;

L'esclave démarre la synchronisation

start replica;

4. Vérifiez l'effet de configuration de la synchronisation

Sur l'hôte, vérifiez s'il y a une connexion. depuis l'esclave

show processlist;

Affichez l'état de la réplication de synchronisation de l'esclave

show slave status\G

Sur l'hôte, insérez les données dans une table et vérifiez les données dans la table correspondante de l'esclave. Les résultats du test sont très bons (omis)

.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer