主主复制:两个节点,都可以更新数据,并且互为主从
容易产生的问题:数据不一致;因此慎用
考虑要点:自动增长id
配置一个节点使用奇数id
auto_increment_offset=1 #开始点
auto_increment_increment=2 #增长幅度
另一个节点使用偶数id
auto_increment_offset=2
auto_increment_increment=2
主主复制的配置步骤:
(1) 各节点使用一个惟一server_id
(2) 都启动binary log和relay log
(3) 创建拥有复制权限的用户账号
(4) 定义自动增长id字段的数值范围各为奇偶
(5) 均把对方指定为主节点,并启动复制线程
准备两个虚拟机
10.0.0.204 master1
10.0.0.7 master2
在master1上配置my.cnf文件
vim /etc/my.cnf
[mysqld]
server-id=8
log-bin
auto_increment_offset=1 #开始点
auto_increment_increment=2 #增长幅度
重启
systemctl restart mariadb
进入mysql创建复制用户
show master logs; #查看二进制位置备用
grant replication slave on *.* to repluser@'10.0.0.%' identified by '000000';
在master2上操作
配置my.cnf
vim /etc/my.cnf
[mysqld]
server-id=7
log-bin
auto_increment_offset=2 #开始点
auto_increment_increment=2 #增长幅度
重启
systemctl restart mariadb
进入mysql
CHANGE MASTER TO #这是上面创建的用户 和master1二进制位置
MASTER_HOST='10.0.0.18',
MASTER_USER='test',
MASTER_PASSWORD='000000',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000001',
MASTER_LOG_POS=245;
start slave;#启动
show master logs #master2二进制位置 备用
进入master1 的mysql
CHANGE MASTER TO #这是上面创建的用户 和master1二进制位置
MASTER_HOST='10.0.0.7',
MASTER_USER='test',
MASTER_PASSWORD='000000',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000001',
MASTER_LOG_POS=245;
start slave;#启动
show slave status\G;