主从复制配置方案和实际的场景有很多,在之前配置了主从库都是全新的配置方案

在这一篇会配置主库存在数据,然后配置主从复制

开始之前,先分享一套MySQL教程,小白入门或者学习巩固都可以看

MySQL基础入门-mysql教程-数据库实战(MySQL基础+MySQL高级+MySQL优化+MySQL34道作业题)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

主从复制所需要的环境

【Docker】简单介绍与安装
【Docker】安装MySQL8.0
【MySQL】使用docker配置主从复制(主库和从库都是全新的情况)

应用的场景

  • 我们的项目已经运行了一段时间
  • 发现从库已经不够用
  • 需要添加的新的从库
  • 但是现在的主库已经存在了很多的数据
  • 下来咱们来实现一下这个配置方案

开始配置

可以看到以下三张图

  • 第一张是mysql-master主库 存在kaka_test_master_slave
  • 第二张是mysql_slave从库 存在kaka_test_master_slave
  • 第三张是mysql_slave1从库 没有kaka_test_master_slave

给mysql_master主库添加一条数据测试mysql_slave是否已经开启了主从复制

在这里需要注意一下,我是在2020-4-8号配置的,然后把主机关闭了,就出现了主从复制重启失败

原因是主机的MASTER_LOG_FILE这个文件名发生了变化,修改一下,然后重启主从复制即可

我们先在主机插入了一条数据id为6

然后去查看master-slave的数据情况(主从复制已经正常)

开始给mysql-slave1导入mysql-master的数据库

配置有俩种方案

  • 第一种是放弃主库之前的数据,配置主从复制
  • 第二种是复制主库数据到mysql-slave1这个从库,然后配置主从复制

在实际案例中,一般第一种情况很少使用,配置主从复制就是为了缓解读写读的压力。没有了以前的数据那就没什么意义了.

所以本案例主要讲第二种

由于为了演示方便所以就只准备了一张表

1. 把mysql-master的数据库直接锁住

1 flush tables with read lock;

2.查看主数据库状态,并查看file 和 position的值

3.备份数据库

1 docker exec da30bacb60fd /usr/bin/mysqldump -u root --password=123456 kaka_test_master_slave > backup.sql

这个时候会报错是因为我们在终端输入的密码

在mysql-master配置文件etc/my.cnf加入下面配置即可

然后在执行一下命令,就可以看到导出的mysql数据库了

1 docker exec da30bacb60fd /usr/bin/mysqldump kaka_test_master_slave > backup.sql
2
3 # 或者
4 docker exec -it mysql-master mysqldump -uroot -p123456 kaka_test_master_slave > kaka.sql

4.给master-slave1从库创建数据库

5.把备份数据库复制到master-slave1容器中

1 # 复制文件到从机容器
2 docker cp backup.sql mysql-slave1:/
3
4 # 进入到mysql中
5 mysql -u root -p
6
7 # 导入MySQL
8 source /home/kaka.sql;

配置主从复制

1. 跟之前的操作一样,先给mysql-slave1的mysql配置文件配置 server_id

这里配置的是3

或者直接set global server_id=3

2.给予从库权限

这里切记MASTER_LOG_POS这个参数,是在主库 show master status 获得的

1 CHANGE MASTER TO
2 -> MASTER_HOST='172.10.0.2',
3 -> MASTER_USER='master',
4 -> MASTER_PASSWORD='123456',
5 -> MASTER_LOG_FILE='mysql-bin.000001',
6 -> MASTER_LOG_POS=472;

3.开启主从复制

1 start slave

4.查看主从复制状态

1 show slave status\G

测试

先把主机数据库解开,然后添加了一条数据 现在的id边为7了

1 unlock tables;

看我们mysql-slave的数据

在来看mysql-slave1的数据

以上就是配置的全部过程
————————————————

MySQL|一文解决主库已有数据的主从复制的更多相关文章

  1. MySQL主从复制——主库已有数据的解决方案

    在上篇文章中我们介绍了基于Docker的Mysql主从搭建,一主多从的搭建过程就是重复了一主一从的从库配置过程,需要注意的是,要保证主从库my.cnf中server-id的唯一性.搭建完成后,可以在主 ...

  2. MySQL数据库如何解决大数据量存储问题

    利用MySQL数据库如何解决大数据量存储问题? 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开 ...

  3. MYSQL的binary解决mysql数据大小写敏感问题 《转载》

    BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写如下:mysql> select binary 'ABCD'='abcd ...

  4. 利用MySQL数据库如何解决大数据量存储问题?

    提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条数据,每条 ...

  5. centos/windows服务器,Mysql数据库表结构损坏-已解决

    [问题原因]服务器突然断电 [故障报告]数据库表结构损坏 [解决思路]进入强制恢复模式,备份库表及数据重建 故障发现 周末公司断电,周一启动数据库就直接报错了 查看日志 上面标记的log,明确表示是非 ...

  6. mysql已有数据字符集转换

    下面模拟把latin1字符集的数据转换为utf8字符集 一.创建测试表和测试数据: 1.修改会话级别的连接字符集 mysql > set names latin1; 查看一下: 2.创建测试表: ...

  7. mysql更改已有数据表的字符集,保留原有数据内容

    mysql更改已有数据表的字符集,保留原有数据内容     原文网址:http://blog.csdn.net/learn_2/article/details/6460370 环境:在应用开始阶段没有 ...

  8. 已有数据表的Mysql字符编码修改

    Mysql字符集修改应该如何实现呢?下面就为您详细介绍已用数据表的Mysql字符集修改方法,希望对您学习Mysql字符集方面能有所启迪. 环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才 ...

  9. Mysql修改已有数据的字符集

    Mysql修改已有数据的字符集 问题 在生产环境中跑了很久,发现MysqlClient连接的字符集是默认的latin1,我们一直以为都是utf8,造成这样的误解,是因为在内网环境中,我们是源码编译的M ...

随机推荐

  1. P2424 约数和 【整除分块】

    一.题目 P2424 约数和 二.分析 因为都是加法,那么肯定有的一个性质,即前缀和的思想,就是$$ { ans =\sum_{i=1}^y f(i)} - {\sum_{i=1}^x f(i)}   ...

  2. dfs求连通块

    递归 递归是什么?绝大部分人都会说:自己调用自己,刚开始我也是这样理解递归的.确实没错,递归的确是自己调用自己.递归简单的应用:编写一个能计算斐波那契数列的函数,也就是这样: int fb(int n ...

  3. Quartz基础使用

    Quartz基本组成部分: 调度器:Scheduler 任务:JobDetail 触发器:Trigger,包括SimpleTrigger和CronTrigger . using Quartz; usi ...

  4. IPFS矿池集群方案详解

    IPFS作为一项分布式存储技术,可以说是web3.0发展的基石.关于IPFS的产业,如存储.技术.矿机.矿池等也发展得非常迅速. 什么是单机挖矿? 单机挖矿就是一台机器就是一个节点,一台机器就完成挖矿 ...

  5. SpringBoot-02 运行原理初探

    SpringBoot-02 运行原理初探 本篇文章根据b站狂神编写 pom.xml 2.1.父依赖 其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件! <parent> < ...

  6. 图像Resize方式对深度学习模型效果的影响

    在基于卷积神经网络的应用过程中,图像Resize是必不可少的一个步骤.通常原始图像尺寸比较大,比如常见监控摄像机出来的是1080P高清或者720P准高清画面,而网络模型输入一般没有这么大,像Yolo系 ...

  7. [DFS]特殊的质数肋骨

    特殊的质数肋骨 时间限制:1000MS----内存限制:256000KB 题目描述 农民约翰母牛总是产生最好的肋骨. 你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买 ...

  8. [源码解析] 并行分布式任务队列 Celery 之 消费动态流程

    [源码解析] 并行分布式任务队列 Celery 之 消费动态流程 目录 [源码解析] 并行分布式任务队列 Celery 之 消费动态流程 0x00 摘要 0x01 来由 0x02 逻辑 in komb ...

  9. Istio最佳实践系列:如何实现方法级调用跟踪?

    赵化冰,腾讯云高级工程师,Istio Member,ServiceMesher 管理委员,Istio 项目贡献者,热衷于开源.网络和云计算.目前主要从事服务网格的开源和研发工作. 引言 TCM(Ten ...

  10. 案例分析作业——VS和VS Code

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 案例分析作业 我在这个课程的目标是 认真完成课程要求并提高相应能力 这个作业在哪个具体方面帮助我实现目标 学 ...