源码mysql关于gtid的双主同步复制

master1  ip:192.168.122.237

master2  ip:192.168.122.38

做双主  两个master都需配置如下

[root@dir2 ~]# cat /etc/my.cnf
[mysqld]
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/mydata/data
port=3306
server_id=38
socket=/tmp/mysql.sock
character_set_server=utf8

log_bin     //双主两个log_bin都需开启,单做主从只需开master端
gtid_mode=ON
enforce_gtid_consistency=true

[client]
default-character-set=utf8

首先做主从                 以master1为主,master2为从

在master1上进行授权:

grant replication slave on *.* to 'slave'@'192.168.122.237' identified by '123';

这个在用master2 进行帐号测试时

mysql -uslave -p'123' -h '192.168.122.237' 可能会出现一下错误

ERROR 1130 (HY000): Host 'virtual3' is not allowed to connect to this MySQL server

这是由于master2这个主机拒绝远程访问除了 localhost的mysql,最好授权给一个网段

或者写

grant replication slave on *.* to 'slave'@'192.168.122.%' identified by '123';

master2端进行:

mysql> change master to
    -> master_host='192.168.122.237',
    -> master_user='slave',
    -> master_password='123',
    -> master_auto_position=1;

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status;

 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes   只有这两个都为yes才可以,做完主从可以先测试一下,看是否能同步,再来做双主

在此基础上做双主:

由于刚是在master1上对该网段授权,所以不需要master2对master1授权了,比较方便

注:若在master1上没有对该网段授权,需master2对master1授权,但也是在master1上进行授权命令

master1:  也进行如下操作

mysql> change master to
    -> master_host='192.168.122.237',
    -> master_user='slave',
    -> master_password='123',
    -> master_auto_position=1;

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status;

 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes   出现这个就行

猜你喜欢

转载自blog.csdn.net/kerry2018/article/details/82889545