GTID (Global Transaction ID) 是对于一个已提交事务的编号,并且是一个全局唯一的编号。 GTID 实际上 是由 UUID+TID 组成的。其中 UUID 是一个 MySQL 实例的唯一标识。
在server1中:
修改mysql配置文件
[root@server1 ~]# vim /etc/my.cnf
…
server_id=1 #服务器ID
log_bin=master-bin #开启二进制日志
binlog_do_db=test #需要同步的数据库名
binlog_ignore_db=mysql #禁止同步的数据库名
gtid_mode=ON
enforce-gtid-consistency=true
重启mysql服务
[root@server1 ~]# systemctl restart mysqld
[root@server1 ~]# mysql -uroot -p
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
在server2中:
[root@server2 ~]# vim /etc/my.cnf
…
server_id=2 #服务器ID
log_bin=master-bin #开启二进制日志
binlog_do_db=test #需要同步的数据库名
binlog_ignore_db=mysql #禁止同步的数据库名
relay-log=relay-log.log
gtid_mode=ON
enforce-gtid-consistency=true
[root@server2 ~]# systemctl restart mysqld
[root@server2 ~]# mysql -uroot -p
停止同步
mysql> stop slave;
Query OK, 0 rows affected (0.03 sec)
##由于pos号一直在变更 故设定MASTER_AUTO_POSITION=1
授权
mysql> change master to master_host=‘此处写master的ip地址’,master_user=‘hostname’,master_password=‘HYM*hyf5532’,MASTER_AUTO_POSITION=1;
Query OK, 0 rows affected, 2 warnings (0.48 sec)
开启同步
mysql> start slave;
Query OK, 0 rows affected (0.02 sec)
查看状态
mysql> show slave status\G