您的位置:首页 > 数据库 > MySQL

mysql的主主复制模型

2016-06-09 01:57 330 查看
演示mysql的双主复制的模型:
物理机为win7,虚拟机是2台centos7
节点1:192.168.255.2
节点2:192.168.255.3

yum安装mariadb-server5.5

配置节点1:
]# vim /etc/my.cnf




配置节点2
]# vim /etc/my.cnf




分别启动mysql服务:
]# systemctl start mariadb.service

分别在两节点上:设置复制权限的账号:
> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.255.%' IDENTIFIED BY 'replpass';
> FLUSH PRIVILEGES;

注意:在实际工作中,只能授权单个IP,不能是通配符的形式授权;如果有多个ip,就每个ip单独执行一遍授权语句;

然后,设置两个节点都指向对方为主节点;
提前记录好对方的二进制日志文件事务所处的位置;然后就从这个位置开始复制:

节点1:查看并记录二进制日志文件事务所处的位置



记录位置为499,将在节点2设置时使用;

节点2:查看并记录二进制日志文件事务所处的位置



记录位置为509,将在节点1设置时使用;

设置节点1:
> CHANGE MASTER TO MASTER_HOST='192.168.255.3',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=509;

设置节点2:
> CHANGE MASTER TO MASTER_HOST='192.168.255.2',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=499;

分别在两节点上:设置
> START SLAVE;

此时,在两节点均可查看:






显示内容和主从复制基本相同,只不过都是互为双主的模型;

此时,双主模型配置完成,双方都可以通过对方复制了;

验证双主:
例如在节点1,创建一个新库:

> CREATE DATABASE mydb;
并查看节点1的状态:




在节点2:
查看状态:



查看同步到的新库:



此时,已经验证了节点1写操作后,节点2同步节点1后完成数据备份;

再验证节点2发生写操作后,节点1同步节点2后完成数备份;
在节点2:
在新库中创建表:

> use mydb
> CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,name CHAR(30));




查看节点2状态:




到节点1上查看同步后的结果:




查看同步到的表:




继续验证自动增长偏移量:
继续在节点1:给字段插入新值
> INSERT INTO tb1 (name) VALUES ('Kobe Byrant'),('Michael Jordan'),('Yao Ming');




在节点2:
也给字段插入新值,验证自动增长偏移量不会出现重复的id
> INSERT INTO tb1 (name) VALUES ('Zhu Uuanzhang'),('Zhu Di'),('Zhu Yue');



可验证,自动增长偏移量实现当两边分别插入新值后,id不会重复;

以上就是mysql主主复制模型的配置实现完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 双主复制