Maison  >  Article  >  base de données  >  Introduction au processus d'implémentation de la synchronisation double maître des tables partielles dans MySQL5.7

Introduction au processus d'implémentation de la synchronisation double maître des tables partielles dans MySQL5.7

黄舟
黄舟original
2017-09-05 13:31:311494parcourir

Cet article vous présente principalement les informations pertinentes sur l'implémentation de certaines tables de synchronisation double maître dans MySQL 5.7. L'article le présente en détail à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence que tout le monde peut apprendre ou utiliser. mysql. Amis qui en ont besoin Apprenons avec l'éditeur ci-dessous.

Avant-propos

Récemment rencontré une demande En raison de l'activité propre de l'entreprise, certaines tables entre les deux bases de données nécessitent une synchronisation bidirectionnelle des données en temps réel. . Et le temps d'arrêt d'une base de données n'affectera pas l'autre base de données. J'enregistrerai ici mes recherches techniques pour une utilisation ultérieure dans la reconstruction. Pas grand chose à dire ci-dessous, jetons un œil à l’introduction détaillée.

Installer MySQL5.7

Il est recommandé d'aller directement sur le site officiel et de télécharger la source yum pour l'installer, après tout, est sûr et facile à installer.


wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-server
# 安装MySQL5.7
systemctl start mysqld
# 启动MySQL

Configuration des doubles maîtres

configuration my.cnf

En voici une simple pour la configuration double maître, il n'y a pas d'optimisation liée à la base de données. Si une optimisation est nécessaire, vous pouvez discuter en privé.

La configuration de MySQL1 est la suivante


[mysqld]
vim /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip_name_resolve=ON
#设置简单密码
validate_password_policy=0
validate_password_length=1
###主配置
log_bin=bin_log
server-id=1
binlog-do-db=ziyun
# 允许从复制的哪一个库
slave_parallel_type='logical_clock'
#设置复制类型为 LOGICAL_CLOCK
slave_parallel_workers=4
#设置并行数量为 4
###从配置
relay-log=relay-bin
relay-log-index=relay-bin.index
replicate-do-db=ziyun
# 允许复制主服务的库
replicate-do-table=ziyun.test1
# 允许复制主服务的库的哪一张表
replicate-do-table=ziyun.test2

La configuration de MySQL2 est fondamentalement la même que ci-dessus, sauf celle-là server-id=2 est modifié et les autres restent inchangés. C'est-à-dire

Configuration des commandes MySQL

Les éléments suivants sont tous configurés dans l'interface de ligne de commande SQL

Configuration principale :


mysql> CREATE USER 'slave'@'192.168.1.100' IDENTIFIED BY '123.com'; 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.100';
# 授权复制的用户和密码
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File   | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| bin_log.000002 |  8384 | ziyun  |     |     |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

Configuration esclave :


mysql> CHANGE MASTER TO
 -> MASTER_HOST='192.168.1.101',
 -> MASTER_USER='slave',
 -> MASTER_LOG_FILE='bin_log.000002',
 -> MASTER_LOG_POS=8384;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
   Slave_IO_Running: Yes
   Slave_SQL_Running: Yes
# 确定以上都为yes,并且无任何报错即可

La même configuration peut être effectué sur MySQL2

Test de synchronisation double maître


Ici, j'ai déjà construit une base de données ziyun des deux côtés et construit la table test1 test2 test3 . Les résultats des tests sont les suivants :

Résumé

.

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