MySQL5.7双主架构搭建(基于GTID方式)

系统:Centos6.5
数据库IP:192.168.0.103、192.168.0.104

数据库端口:都是3306


搭建MySQL步骤 略(详见:https://blog.csdn.net/xiaoyi23000/article/details/53200205
1、在103节点/etc/my.cnf上配置(配置中只是关于GTID的参数配置,其他相关参数略)
server-id=1033306
relay-log=relay-log.log
binlog_format=ROW
#log_slave_updates=true    #MySQL5.7可以不启用此参数,5.7版本使用了
gtid_executed 表记录同步复制的信息,避免两次写入relay-log和binlog,降低了从库磁盘I/O
gtid_mode=on
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
sync_master_info=1
slave_parallel_workers=2
binlog_checksum=CRC32
master_verify_checksum=1
slave_sql_verify_checksum=1
binlog_rows_query_log_events=1
log_bin=mysql-bin.log
#replicate_do_db=tt
slave_parallel_type=logical_clock #MySQL5.7新增加的值,配置基于表的组提交并行复制,默认值为database(基于库进行多线程复制,MySQL5.6是基于库的方式进行多线程方式复制)建议改为logical_clock,基于表的组方式复制,提高复制的效率。

设置完成后重启MySQL服务……

2、在104节点
/etc/my.cnf上配置(配置中只是关于GTID的参数配置,其他相关参数略)
server-id=1043306
relay-log=relay-log.log
binlog_format=ROW
#log_slave_updates=true
gtid_mode=on
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
sync_master_info=1
slave_parallel_workers=2
binlog_checksum=CRC32
master_verify_checksum=1
slave_sql_verify_checksum=1
binlog_rows_query_log_events=1
log_bin=mysql-bin.log
#replicate_do_db=tt
slave_parallel_type=logical_clock
设置完成后重启MySQL服务……

3、先搭建已103为主,104为从的主从架构,然后再配置双主的机构模型
①在103上创建104的复制用户
mysql>create user zhang@'192.168.0.104' identified by '123123';
mysql>grant replication slave on *.* to zhang@'192.168.0.104';
②在104上执行复制操作,gtid配置命令如下:

change master to master_host='192.168.0.103', master_user='zhang', master_password='123123', master_port=3306, master_auto_position=1;

104从节点运行正常!!
4、上述已经以103为主,104为从的设置完毕后,再在其基础上设置104节点为主,103为从的配置
在103主节点上创建新的用户(※这点很重要,因为之前已经是主从配置,在103节点上创建会自动同步至104上,如果在104上创建用户,可能会导致两节点数据不一致情况发生)
mysql>create user feng@'192.168.0.103' identified by '123456';
mysql>grant replication slave on *.* to feng@'192.168.0.103';
5、然后在103上执行复制命令操作:

mysql>change master to master_host='192.168.0.104', master_user='feng', master_password='123456', master_port=3306, master_auto_position=1;
6、启动设置的103节点为从的配置
mysql>start slave;

7、查看配置情况:
mysql>show slave status\G;

8、测试配置:
①在192.168.0.103上

create database aaa;

create table a1 (id int,name varchar(12));
insert into a1 values (103,'张');

②分别在103、104库上进行查看数据
两个库上数据库和表以及数据都存在!

==============================================================
③在192.168.0.104上
create database bbb;
create table b1 (id int,name varchar(12));
insert into b1 values (104,'晓枫');

④分别在103、104库上进行查看数据

两个库上数据库和表以及数据都存在!


总结:经过上述操作,MySQL5.7基于GTID模式的双主模型配置完毕,生产环境双主模型一般都会做高可用,然后做读写分离架构,很少用到双主同时写库操作,除非写的频率较高的库,那样还需要通过其他设置解决数据库中表的主键冲突问题。




猜你喜欢

转载自blog.csdn.net/xiaoyi23000/article/details/80525625