概述

由于目前生产环境的mysql数据库分布在两台服务器,若从单一主从来看,配置很简单,但是需要将两台服务器的数据库同步到一台从库上面,需要进行更多配置和注意事项。多源复制有两种方案,Binlog+Position和GTID,我们采用的是第一种方案Binlog+Position进行的多源复制。

安装mysql

在从库的服务器上安装mysql-5.7版本的,目前只有mysql5.7以上的版本才支持多源复制。

配置mysql

1、配置两台master的mysql

在my.cnf配置文件中增加或修改以下参数:

server_id = 90

log_bin = master_1

log-bin-index = master_1.index

2、配置slave

在my.cnf配置文件中增加或修改以下参数

server_id = 92

relay_log = slave

relay_log_index = slave.index

master-info-repository = TABLE

relay-log-info-repository = TABLE

replicate_ignore_db = mysql

开始配置多源主从复制

1、设置master

在master新建slave复制用户:

grant replication slave,replication client on *.* to repl@'192.168.2.92' identified by 'repl';

flush privileges;

分别进入两台master的mysql终端执行以下命令将mysql进行锁表操作

flush tables with read lock;

然后执行show master status; 获取master的log_bin_file的文件名和file_size。

分别导出两台master的mysql需要备份的数据库的结构和数据。

2、设置slave

登入slave的mysql终端,新建需要备份的数据库(例:CREATE DATABASE `order_00` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;)

进入各个数据库导入master备份的数据库的结构和数据(所花时间长短取决于数据量的大小)。

在slave执行完以上步骤后开始配置从复制,先执行stop slave; 然后slave复制master配置如下:

change master to master_host='192.168.2.91',master_port=3507,master_user='repl',master_password='repl',master_log_file='master_91.000001',master_log_pos=376 FOR CHANNEL 'master_91';

注意:需要分别配置两台master,然后分别执行。

以上配置命令执行完成后,启动slave执行命令:start slave;

检查slave有没有启动成功:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上两项为yes代表配置多源主从复制成功。

最后分别在master库执行命令unlock tables;解除锁表。

测试

分别在两台master中的数据库中抽查几个数据库进行新建数据表和数据,对master的新建表数据进行手动增删改查,然后查询slave有没有进行同步,若和master的数据一致,则表示多源主从复制成功,若没有同步则不成功,不成功从第一步开始检查。

注意事项

1、遇到Slave_IO_Running: connection的时候,检查master和slave的防火墙,若防火墙没有问题,检查change master配置的时候IP,port,user,pwd等。

2、遇到Slave_IO_Running: Yes,Slave_SQL_Running: Yes都是yes却数据不同步的时候检查my.cnf配置文件中replicate-do-db参数。可以将其注释或者分库单独写。

3、一定要在master锁表后才能进行数据的导出,不然可能会导致主从数据不一致。

4、再所有步骤完成后一定要解除master的锁表,不然master插入数据会报错。

mysql多源复制相同数据库名称_mysql数据库多源复制方案相关推荐

  1. mysql数据库修改数据库名称_MySQL数据库之MySQL 修改数据库名称的一个新奇方法...

    本文主要向大家介绍了MySQL数据库之MySQL 修改数据库名称的一个新奇方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. MySQL在5.1引入了一个rename data ...

  2. 万网 mysql 用户 存在那个表里_会计核算软件备案报告表中的数据库名称和数据库版本如何填写...

    会计核算软件备案报告表中的数据库名称和数据库版本如何填写以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 会计核算软件备案 ...

  3. mysql数据库语法_MySQL数据库基本语法

    SQL WHAT(SQL是什么?) Structured Query Language:结构化查询语⾔ WHY(为何要使用SQL?) 难道仅仅使用SQL Server Management Studi ...

  4. MySQL 源码 需要 什么基础_MySQL 基础之 源码 部署

    源码部署 1. 需要先卸载一些软件 centos7 中需要先卸载 mariadb-libs 软件包 # rpm -e --nodeps mariadb-libs 2. 安装依赖包 yum -y ins ...

  5. mysql数据库应用_MySQL数据库应用 从入门到精通 学习笔记

    以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库 查看所有数据库:SHOW DATABASES 创建数据库:CREATE DA ...

  6. mysql数据库语言_mysql数据库sql语句基础知识

    1.数据库操作 查看当前数据库 SELECT DATABASE(); 显示用户名,数据库版本 SELECT user(), version(); 创建库 CREATE DATABASE[ IF NOT ...

  7. mysql数据库技巧_MySQL数据库常用操作和技巧

    MySQL数据库可以说是DBA们最常见和常用的数据库之一,MySQL的广泛应用,也使更多的人加入到学习它的行列之中.下面是老MySQL DBA总结的MySQL数据库最常见和最常使用的一些经验和技巧,分 ...

  8. mysql数据库名称sid_数据库sid 和数据库名

    数据库名.实例名和ORACLE_SID的区别 导读: 最近因看到论坛有人问起这方面的东西,将自己的理解加上查阅相关资料整理如下,如果不全或不当的地方,望指正并补全它. 数据库名(DB_NAME).实例 ...

  9. mysql主从数据库设计_mysql数据库主从库镜像原理及配置

    最近有个项目需要在vmware虚拟机上安装mysql,由于生产环境的要求需要有必要,如果做成VM虚机操作系统层HA,需要用到虚拟共享总线,而这将会使VM丧失vmtion特性.于是选择不做OS层的高可用 ...

最新文章

  1. cmd中net start mysql发生系统错误5
  2. java filereader blob_二进制学习——Blob,ArrayBuffer、File、FileReader和FormData的区别
  3. [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
  4. imageView阴影和圆角效果的处理
  5. java登录注册升级代码_【升级版】Java 登录,注册,传数据到后台小案例
  6. 王爽汇编习题 : 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 ___ 到 ____。
  7. 你知道为啥程序员下班后只关显示器从不关电脑?
  8. pcb只开窗不镀锡_案例图解射频PCB设计要点
  9. php 输出可以设置格式文件,php格式输出文件var_export函数实例
  10. 三点滑动平均法怎么计算的_孔径千分尺怎么用,能看懂吗?
  11. 毛骨悚然,亚马逊AI突然笑出声来
  12. 容器系列之虚拟化网络
  13. kettle连接ACCESS数据库
  14. 实现商品分类回显(笔记)
  15. python中3 and not 5_Python控制結構3.布林邏輯:and,or,not
  16. Hive 字符串转日期
  17. Dreamweaver CSs网页设计css规则定义翻译
  18. android的vmos虚拟机,vmospro虚拟机
  19. 互联网行业常见数据分类:用户数据、行为数据、业务数据
  20. 基于语音识别的QT设计的csgo互动类视频游戏

热门文章

  1. 机器学习基石HOW部分(2)
  2. 尼康G镜头与D镜头的差别
  3. C#的static constructor抛了异常会怎么处理?
  4. UVA 839 Not so Mobile
  5. c#中窗体的close、dispose的区别及分析
  6. Android—内存泄漏、GC及LeakCanary源码解析
  7. Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决(屡试不爽)
  8. linux终止yum进程,【Linux】CentOS7中yumbackend.py进程的结束方法
  9. 隐藏滚动条或更改滚动条样式加制作三角形
  10. 文本编辑软件_IDE与文本编辑器的比较