基于事务的replcation 其实是利用GTID来实现复制的
GTID最初由google实现,在MySQL5.6中引入,GTID在事务提交时生成,由UUID和ID组成,UUID在第一次启动mysql时生成,保存在数据目录下的auto.cnf文件中事务ID从1开始自增,
使用GTID好处:
1、不需要指定传统复制中的master_log_file和master_log_pos,使主从复制更简单可靠
2、可以实现基于库的多线程复制,减小主从复制的延迟
主服务器配置:
1、修改配置文件,开启二进制日志,设定server-id,开启gtid
2、创建二进制日志存储路径
3、赋予权限
4、重启服务
5、创建登陆账户
从服务器配置:
1、修改配置文件,设定server-id,开启gtid,保持一致
2、重启服务
3、设置slave
案例:
主服务器配置:
1、vim /etc/my.cnf
log-bin=/var/log/mysql/mysql-bin
server-id=208
gtid_mode=ON
enforce_gtid_consistency=1
2、mkdir /var/log/mysql
3、chown -R mysql:mysql /var/log/mysql
4、systemctl restart mysqld
5、grant all on . to jqb@’%’ identified by ‘Jqb19910312,’;
从服务器配置:
1、vim /etc/my/cnf
server-id=209
gtid_mode=ON
enforce_gtid_consistency=1
2、mysql> change master to
-> master_host=‘10.3.133.208’,
-> master_user=‘jqb’,
-> master_password=‘Jqb19910312,’,
-> master_auto_position=1; (此处必须为1)
3、mysql>show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
只要看到这两个字段后面全部是Yes,说明主从已经配置成功
同样如果IO后面不是Yes,看一下配置的用户权限是否给了或者看一下slave是否写的正确,