mysql主从复制的原理在网上都可以找到,现在介绍一下在linux系统下配置mysql主从复制过程(本实例通过单台及其的多实例来完成,也可以通多台及其来完成);
第一步:以其中的一个实例来作为主库(也称master),我本机安装了3306和3307两个实例,其中以3306作为master,3307作为slave;
打开master的bin-log
编辑log-bin选项
第二步:确保server-id不一致
server-id要不一致,即便是不同的及其最好也不一样,以免冲突;
以下列出了server-id的几点要求:**
最后查看是否生成了bin-log日志:
接着登录mysql查看是否开启了二进制日志
结果显示是ON,结合以上两个条件说明表示已经开启,注:从库可以不开启bin-log,因为我们没有做级联同步,但slave的server-id不能和master一致。
在master端建立用于slave复制的账号
接着就是授权了:
只有分配了账号才允许从库来连接主库读取二进制日志;
第三步:在主库做数据备份
首先加锁,
接着查看一下主库的状态
接着dump主库的数据
打开锁:
把备份包数据导到从库中:
第四步
登录从库执行脚本,表示从000003这个bin-log日志的333这个位置开始拉取日志:
接着登录从库查看master.info文件是否有记录
第五步
最后开启同步
第六步
查看有没有同步成功,成功的话slave会有两个线程,主库会有一个线程
如果IO线程和SQL线程都是出于运行状态就是正常的
再查看一下slave有没有relay-log
到此成功!!!
第七步:数据测试
主库写入数据
新建一个数据库
切换至从库查看relay-log
数据已同步到slave端了!!!
提示:master.info是给从库的IO用的,relay-log是给SQL线程用的。