实验前提
主机:server1:172.25.55.1
从机:server2:172.25.55.2
关闭防火墙,搭建好yum源。
- GTID (Global Transaction ID) 是对于一个已提交事务的编号,并且是一个全局唯一的编号。 GTID 实际上 是由UUID+TID 组成的。其中 UUID 是一个 MySQL 实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。
- 基于GTID的复制方式是从Mysql5.6.5开始新增的复制方式。通过 GTID保证了每个在主库上提交的事务在集群中有一个唯一的ID。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。
- 在原来基于二进制日志的复制中,从库需要告知主库要从哪个偏移量进行增量同步,如果指定错误会造成数据的遗漏,从而造成数据的不一致。借助GTID,在发生主备切换的情况下,MySQL的其它从库可以自动在新主库上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的维护,也减少了人为设置复制位置发生误操作的风险。另外,基于GTID的复制可以忽略已经执行过的事务,减少了数据发生不一致的风险。
一、安装mysql
[root@server1 ~]# ls
mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
[root@server1 ~]# tar xf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
[root@server1 ~]# ls
[root@server1 ~]# yum install mysql-community-client-5.7.24-1.el7.x86_64.rpm
mysql-community-common-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
mysql-community-server-5.7.24-1.el7.x86_64.rpm
server2安装与server1安装相同。
二、编辑mysql的配置文件
-
主机( server1)配置
[root@server1 ~]# vim /etc/my.cnf server-id=1 log-bin=mysql-bin gtid-mode=on enforce-gtid-consistency=1 [root@server1 ~]# systemctl start mysqld [root@server1 ~]# cat /var/log/mysqld.log | grep password 2019-03-02T05:56:38.937543Z 1 [Note] A temporary password is generated for root@localhost: SEBdJCCyb4)J(临时密码) [root@server1 ~]# mysql_secure_installation (数据库初始化)
-
从机(server2)配置
[root@server2 ~]# vim /etc/my.cnf server-id=2 gtid-mode=on enforce-gtid-consistency=1 [root@server2 ~]# systemctl start mysqld [root@server2 ~]# cat /var/log/mysqld.log | grep password(查看临时密码) [root@server2 ~]# mysql_secure_installation (数据库初始化)
三、设置主从复制
-
主机
mysql> grant replication slave on *.* to rep@'172.25.55.%' identified by 'Redhat_123'; Query OK, 0 rows affected, 1 warning (0.30 sec) mysql> Flush privileges; Query OK, 0 rows affected (0.08 sec) mysql> show master status;
-
从机
mysql> change master to master_host='172.25.55.1',master_user='rep',master_password='Redhat_123',master_auto_position=1; (基于gtid的主从复制不需要知道主机上的pos号,直接其用自动pos号的功能) mysql> start slave;
查看slave状态:
测试
在主机上创建一个数据库wyf,在从机上可以查看到。
从机查看: