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