当主库存在历史数据时如何完成全量Mysql主从复制
上一篇文章介绍了[docker+mysql的主从复制的搭建][1],使用docker有许多优点:可以轻松实现跨平台的移植、docker容器之间不会互相影响、容器内部不会污染宿主机的环境等等。如果大家还没有接触docker,建议先去了解一下docker的使用教程,当然了,不会docker也不影响学习解决该问题的大体步骤。
前提:
当决定使用Mysql主从复制的数据库架构时,可能你的工程已经运行了一段时间,这是很常见的场景,比如目前我负责的一个项目,我想改变生产环境的单节点数据库的现状,通过主从复制为读写分离作铺垫。那么就需要两台及以上的节点作为数据库节点,这里所谓的节点不仅仅指服务器,也可能是同一台服务器,不同端口,使用docker进行隔离。
可是我在配置完主从复制后发现,主节点已经存在的数据并没有同步到从节点,当主节点向数据库写数据时,从节点重复这些操作,可从节点本身根本没有创建那些主节点的库,导致运行出错、IO线程坏死,最终从节点挂掉
教程开始
查看主库的已有数据库
show databases;
假设其中test数据库是我们想要主从同步的数据库,模拟生产环境,该数据库中已经有了很多数据
use test;
select * from