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

141 篇文章 4 订阅
12 篇文章 0 订阅

转载自,原文格式清晰:https://blog.csdn.net/xiaoyi23000/article/details/80525625

配合另一篇博客看,效果最好《Mysql双主双从(实战干货)》https://blog.csdn.net/HD243608836/article/details/109401210

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

系统: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模式的双主模型配置完毕,生产环境双主模型一般都会做高可用,然后做读写分离架构,很少用到双主同时写库操作,除非写的频率较高的库,那样还需要通过其他设置解决数据库中表的主键冲突问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值