您的位置:首页 > 数据库 > MySQL

MySQL5.6基于GTID的主从复制配置

2016-08-11 16:51 786 查看
全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性。

GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。下面是一个GTID的具体形式。

1、在MySQL5.6以前对于主从复制出现问题有时候需要你分析BINLOG找到POS点,然后在CHANG MASTER TO.对于新手来说很容易犯错,造成主从复制错误.在新版本中,不必在需要寻找BINLOG和POS点,你只需要知道MASTER的IP、密码、端口就可以,因为MySQL会从内部GTID机制自动找到同步点.
2、多线程复制,在MySQL5.6之前,复制是单线程队列式的,只能一个一个运行.在新版中支持基于库的多线程复制,但是库里的表不能多线程.

主MySQL配置文件修改:

server-id=185 #和从MySQL不同
log-bin=mysql-bin
expire-logs-days=14    #二进制日志周期(按需配置)
binlog-format=row    #使用row格式
log-slave-updates=true
gtid-mode=on    #开启GTID模式
slave_parallel_workers=4           #开启基于库的多线程复制默认0不开启
enforce-gtid-consistency=true     #强制GTID的一致性
master-info-repository=TABLE     #主服信息记录库=表/文件
relay-log-info-repository=TABLE   #中继日志信息记录库
relay-log=mysqld-relay-bin  #中继日记名称
sync-master-info=1                #同步主库信息
innodb_file_per_table=1    #使用独立表空间


主MySQL创建复制账号:

grant replication slave,replication client on *.* to 'repl'@'10.205.22.186' identified by 'password';
flush privileges;


从MySQL配置文件修改:

server-id=186 #和主MySQL不同
log-bin=mysql-bin
expire-logs-days=14    #二进制日志周期(按需配置)
binlog-format=row    #使用row格式
log-slave-updates=true
gtid-mode=on    #开启GTID模式
slave_parallel_workers=4           #开启基于库的多线程复制默认0不开启
enforce-gtid-consistency=true     #强制GTID的一致性
master-info-repository=TABLE     #主服信息记录库=表/文件
relay-log-info-repository=TABLE   #中继日志信息记录库
relay-log=mysqld-relay-bin  #中继日志名称
sync-master-info=1                #同步主库信息
innodb_file_per_table=1    #使用独立表空间


从MySQL执行:

change master to master_host='10.205.22.185',master_port=3306,master_user='repl',master_password='password',MASTER_AUTO_POSITION=1;
start slave;


在主MySQL写入数据,查从MySQL是否同步成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: