时间:2021-07-01 10:21:17 帮助过:21人阅读
一. 两台主机上都安装MySQL
[root@db01 ~]# yum -y install mysql mysql-server
[root@db02 ~]# 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搭建双机互备-主主同步复制
标签:记录 冲突 orm vim _id fse test inf 双向