MySQL5.7双主架构搭建(基于GTID方式)
数据库IP:192.168.0.103、192.168.0.104
数据库端口:都是3306
搭建MySQL步骤 略(详见:https://blog.****.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
设置完成后重启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 [email protected]'192.168.0.104' identified by '123123';
mysql>grant replication slave on *.* to [email protected]'192.168.0.104';
②在104上执行复制操作,gtid配置命令如下:
104从节点运行正常!!
4、上述已经以103为主,104为从的设置完毕后,再在其基础上设置104节点为主,103为从的配置
在103主节点上创建新的用户(※这点很重要,因为之前已经是主从配置,在103节点上创建会自动同步至104上,如果在104上创建用户,可能会导致两节点数据不一致情况发生)
mysql>create user [email protected]'192.168.0.103' identified by '123456';
mysql>grant replication slave on *.* to [email protected]'192.168.0.103';
5、然后在103上执行复制命令操作:
6、启动设置的103节点为从的配置
7、查看配置情况:
mysql>show slave status\G;
①在192.168.0.103上
create database aaa;
create table a1 (id int,name varchar(12));
insert into a1 values (103,'张');
两个库上数据库和表以及数据都存在!
==============================================================
③在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模式的双主模型配置完毕,生产环境双主模型一般都会做高可用,然后做读写分离架构,很少用到双主同时写库操作,除非写的频率较高的库,那样还需要通过其他设置解决数据库中表的主键冲突问题。