秦悦明的运维笔记

mysql-GTID

1. GTID概念

简化了很多主从复制上面的问题。不需要像之前版本需要通过binlog的pos来确定从哪开始复制。
GTID = source_id:transaction_id
source_id是一个mysql自动生成的uuid,在datadir下面的auto.cnf里面,例如:

1
server-uuid=6cdd37fa-d3d8-11e6-b843-00163e0030cf

transaction_id是事务id,递增的一个序列。连起来标识一个事务。

2. master上面设置

1
2
3
4
5
6
7
binlog-format=ROW
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
log-bin=master-bin
log-bin-index=master-bin.index
server_id = 1

主要就是加了gtid-mode,enforce-gtid-consistency

3. slave设置

1
2
3
4
5
6
7
8
server_id = 222
gtid-mode=on
log-bin=slave-bin
log-slave-updates=true
enforce-gtid-consistency=true
binlog-format=ROW
log-bin-index=slave-bin.index
relay-log=slave1-relay-bin

4. grant权限

1
2
CREATE USER 'repl'@'%' IDENTIFIED BY 'slavepass';
grant REPLICATION SLAVE ON *.* TO 'repl'@'%';

5. change master

1
change master to master_host='10.168.105.153', master_user='repl',master_password='slavepass',master_auto_position=1;

6. 启动slave

1
start slave;