MySQL 8.0搭建双机互备-主主同步复制

2021/4/19 19:25:57

本文主要是介绍MySQL 8.0搭建双机互备-主主同步复制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

环境:
主机A(db01):172.16.5.57
主机B(db02):172.16.5.58
说明:配置双向主从,互为主从;两台服务器均可给用户访问(具备冗余功能),任务对半分。

一. 两台主机上都安装MySQL
[root@db01 ~]# yum -y install mysql mysql-server

 

二. 编辑配置文件/etc/my.cnf
主机A配置文件增加内容:

[root@db01 ~]# vim /etc/my.cnf

server_id=57
log_bin=mysql-bin
log_bin_index=mysql-bin.index
binlog_format=row
relay_log=mysql-relay-bin
relay_log_index=mysql-relay-bin.index
binlog_ignore_db=information_schema
binlog_ignore_db=perfance_schema
binlog_ignore_db=mysql
binlog_ignore_db=sys
binlog_do_db=test
replicate_ignore_db=information_schema
replicate_ignore_db=perfance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys
replicate_do_db=test
auto_increment_increment=2
auto_increment_offset=1

主机B配置文件增加内容:

[root@db02 ~]# vim /etc/my.cnf
server_id=58
log_bin=mysql-bin
log_bin_index=mysql-bin.index
binlog_format=row
relay_log=mysql-relay-bin
relay_log_index=mysql-relay-bin.index
binlog_ignore_db=information_schema
binlog_ignore_db=perfance_schema
binlog_ignore_db=mysql
binlog_ignore_db=sys
binlog_do_db=test
replicate_ignore_db=information_schema
replicate_ignore_db=perfance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys
replicate_do_db=test
auto_increment_increment=2
auto_increment_offset=2
说明:
log-bin=mysql-bin #表示开启二进制文件
server-id=100 #server id
replicate-do-db=test #表示只同步test库,另外replicate-do-table表示只同步指定的表
binlog-ignore-db=mysql #表示不记录mysql库的二进制文件
auto-increment-increment=2 #表示依次增长2
auto-increment-offset=1 #表示起点值,最后主键id为1、3、5...
注:另一台主机设置为auto-increment-increment=2、auto-increment-increment=1,最终主键id为2、4、6...保证主主同步时主键id不冲突

 

三. 重启主从MySQL并设置两套主从(第二套主从服务器刚好反过来设置)
主机A-master
mysql> grant replication slave,replication client on *.* to 'repl'@'172.16.5.58' identified by 'mysql';
flush privileges;

mysql> show master status;

主机B-slave
mysql> change master to master_host='172.16.6.57',master_user='repl',master_password='mysql',master_log_file='mysql-bin.000009',master_log_pos='267';

主机B-master
说明:授权的用户名可以不一样
mysql> grant replication slave,replication client on *.* to 'repl'@'172.16.5.58' identified by 'mysql';
flush privileges;

show master status;

主机A-slave
mysql> change master to master_host='172.16.6.58',master_user='repl',master_password='mysql',master_log_file='mysql-bin.000004',master_log_pos='267';

 

四. 主机分别开启slave,并检查slave状态
主机A
mysql> start slave;
show slave status\G;

 主机B

mysql> start slave;
show slave status\G;

 

五. 在B服务器上的test库中创建一个表tb1,A服务器也产生tb1
主机B
mysql> use test;
create test.table tb1(id int);
show tables;

 主机A

mysql> show databases;
use test;
show tables;

 

 

六. 在A服务器上的test库中创建一个表tb2,B服务器也产生tb2

主机A
mysql> create test.table tb2(id init);
show tables;

主机B
show tables;



这篇关于MySQL 8.0搭建双机互备-主主同步复制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程