标签:mysql的双主复制
演示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的双主复制
原文地址:http://linsj.blog.51cto.com/5440766/1787600