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 出现这个就行