1. 两台mysql都可以读写,互为主备,默认只是用一台(masterA)负责数据的写入,另一台(masterB)备用;
2. masterA是masterB的主库,masterB又是masterA的主库,他们互为主从;

不足之处:
1. masterB可能处于抑制空闲状态(可以用他当从库,负责部分查询);
2. 主库后面提供服务的从库要等masterB先同步完了数据后才能去masterB上去同步数据,肯能会造成一定程度的同步延迟;

搭建环境

系统:CentOS7
数据库版本:5.6.36
masterA地址:192.168.188.2
masterB地址:192.168.188.3
安装目录:/usr/local/mysql/
数据目录:/data/mysql/
A与B机器都安装好了MySQL,数据库与表都提前同步好;

防火墙配置

iptables

添加mysql同学端口(默认3306)

vim /etc/sysconfig/iptables                //编辑iptables文件,也可以用iptables命令来添加,不过要保存命令
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT        //添加允许3306端口通过
service iptables restart            //重启iptables服务

关闭selinux

vim /etc/selinux/config                //编辑SELinux配置文件
SELINUX=disabled                //修改值为disabled为关闭

服务器设置

masterA设置(192.168.188.2)

vim /etc/my.cnf                //编辑my.cnf文件
server-id=2 //增加server-id为2,一般为自己ip
log_bin=test01 //设置log_bin名为test01
/etc/init.d/mysqld restart        //重启mysql服务
mysql -uroot -p123456            //登录mysql,不要照抄,-u后面是账号,-p后面是密码
grant replication slave on *.* to 'repl'@'192.168.188.3' identified by '123456';        //创建mysql账号repl,只容许指定ip访问,也可以指定ip范围192.168.188.%,其中%为通配符,表示所有;
flush privileges;            //刷新授权表信息
flush tables with read lock;    //锁定数据库表暂时无法写服务;
show master status;        //查看binlog文件值与pos值
stop slave;            //关闭同步

masterB设置(192.168.188.3)

vim /etc/my.cnf
server-id=3                        //增加server-id为3,一般为自己ip
log_bin=test02                    //设置log_bin名为test02
/etc/init.d/mysqld restart    //重启mysql服务
mysql -uroot -p123456        //登录mysql
grant replication slave on *.* to 'repl'@'192.168.188.2' identified by '123456';              //创建用户,允许192.168.188.2登录本机器
flush privileges;                //刷新授权表
stop slave;                        //关闭同步
show master status;        //查看binlog文件值与pos值
change master to master_host='192.168.188.2', master_user='repl', master_password='123456', master_log_file='test01.000001', master_log_pos=664383;        //这里注意log_file与pos值都要对应对应A的show master status;值
start slave;        //开启同步

masterA设置

change master to master_host='192.168.188.3', master_user='repl', master_password='123456', master_log_file='test02.000001', master_log_pos=664343;     //这里log_file与pos值写的必须是B上show master status;的值
start slave;                    //开启同步
unlock tables;                //解锁写

测试主主

在A的test数据库下建立t1表,B上查询后有t1表,证明B能同步A修改的数据;
在B的test数据库下建立t2表,A上查询,有t2表,证明A能同步到B修改后的数据;

masterA设置

mysql -uroot -p123456                //登录mysql
mysql> use test;                //切换到数据库test
mysql> show tables;            //查看当前数据库的所有表,这里没有一个表
Empty set (0.00 sec)
mysql> create table t1(`id` int(4),`name` char(40));            //插入一个表t1
mysql> show tables;       //查看当前数据库的表
+----------------+
| Tables_in_test |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)

masterB

mysql -uroot -p123456                //登录mysql
use test;                //切换到数据库test
mysql> show tables;            //查询同步到数据库test下出现了t1表,证明B能同步A的数据;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)
create table t2(`id` int(4),`name` char(40));            //新建一个t2表,如果A能同步到,就证明A能同步到B

切换masterA(省略了登录与切换数据库的命令)

mysql> show tables;    //查询A的test数据库下所有的表
+----------------+
| Tables_in_test |
+----------------+
| t1             |
| t2             |
+----------------+
2 rows in set (0.00 sec)

转载于:https://blog.51cto.com/shuzonglu/2094931

MySQL主主(双主)数据同步相关推荐

  1. 死磕数据库系列(二十六):MySQL 高可用之单主、双主模型组复制配置实践

    点关注公众号,回复"1024"获取2TB学习资源! 前面我们学习:MySQL 高可用之组复制(MGR)技术的相关原理知识,今天我将详细的为大家介绍 MySQL 高可用技术组复制的单 ...

  2. Canal监听mysql的binlog日志实现数据同步

    Canal监听mysql的binlog日志实现数据同步 1. canal概述 1.1 canal简介 1.2 技术选型 1.3 原理分析 1.3.1 MySQL主备复制原理 1.3.2 canal原理 ...

  3. MySQL 到 SQL Server 实时数据同步实操分享

    摘要:很多 DBA 和开发同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.最近了解到一款实时数据同步工具 Tapdata C ...

  4. MyCat学习:使用MySQL搭建主从复制(双主双从模式)

    首先,上一篇我们建立了一主一丛模式的MySQL读写分离 点击这里 那么接下来,我们搭建双主双从模式的读写分离,并且使用MyCat登录访问 原理:master1,master2,slave1,slave ...

  5. Mysql 集群双主双从安装使用详细讲解

    文章目录 下载Mysql 安装单机Mysql 配置Mysql集群 双Master配置 master1配置 master2配置 配置说明 双Slave配置 Slave1配置 Slave2配置 双 Mas ...

  6. NO2.高可用搭建-mysql安装和双主配置

    1.mysql安装 a.把安装包放入/home/下 b.解压 tar -xzvf mysql-5.7.30-linux-glibc2.12-x86_64.tar c.给解压后文件改名 mv mysql ...

  7. Mysql集群--双主模式

    MySQL主从模式,一主多从.读写分离等.但是单主如果发生单点故障,从库切换成主库还需要作改动.因此,如果是双主或者多主,就会增加MySQL入口,提升了主库的可用性. 因此随着业务的发展,数据库架构可 ...

  8. Mysql+Keepalived实现双主热备

    我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短 MySQL双主复制,即互为Mast ...

  9. MySQL数据库Keepalived双主

    目录 1.环境设置 2.配置my.cnf配置文件 3.授权允许同步 4.开启slave同步 5.验证互为主从 6.安装keepalived 7.配置keepalived 8.验证 1.环境设置 10. ...

  10. java mysql failover_MySQL MMM 双主在Failover时挂起

    两台MySQL服务器,版本Percona 5.5.35,配置双主,装在Centos 6.4下 Master1  db1,172.21.120.160(真实IP),172.21.120.173(Writ ...

最新文章

  1. NA,NP,IE学习之路
  2. 2020noi普及组优秀的拆分_吉首市乾元小学荣获北斗领航梦想全国青少年科技实践活动优秀组织奖...
  3. Devops-运维效率之数据迁移自动化
  4. html中高与行高的区别,CSS中line-height与height有什么区别
  5. 删除顺序表中指定范围的元素
  6. c语言 二进制输出_推荐收藏!C语言入门基础知识大全
  7. 【openjudge】 CDQZ challenge 4
  8. flutter html 加载_Flutter 加载本地 HTML 文件
  9. 数学建模评价类模型——模糊综合评价
  10. HUSTOJ随笔3-配置文件
  11. 软考和华为证书的含金量,哪个更适合找工作
  12. mysql rrd_时间序列数据库rrd启动
  13. Swift-Moya 源码解析
  14. 2021-06-18App Tamer for Mac(CPU优化电池管理工具)
  15. 计算机无法识别ipad,ipad连接电脑没反应怎么办 ipad air连接电脑无法识别解决办法...
  16. OMAP开发板的启动过程
  17. 百度员工抱怨:1月离职,没有年终奖。。。
  18. python简笔画程序_用python设计程序输生日判断星座,及星座简笔画。
  19. FreeRTOS学习记录(四):任务、任务切换(难点)
  20. 新浪微博客户端开发之OAuth认证篇

热门文章

  1. C# QRCode 二维码
  2. 关于异常Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
  3. Java多线程:类ThreadPoolExecutor详解
  4. javascript 2
  5. (FortiGate)飞塔防火墙防病毒解决方案
  6. python基础===Python 代码优化常见技巧
  7. JAVA的异常(四):finally关键字
  8. Spring 4 使用Freemarker模板发送邮件添加附件
  9. Java面向对象知识点精华
  10. eclipse内存占用配置