理解部分:
Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
主服务器将所有命令写入二进制日志当中,从服务器将主服务器中的二进制日志复制到中继日志中,在执行一遍,即实现复制。
一、master服务器配置:
1、停止服务:
![](https://i-blog.csdnimg.cn/blog_migrate/6e49405cab095a90ced3ea3b7c773923.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a462d2d6ec8453b918ffa6e21b00cb38.png)
3、创建目录、修改属组:
![](https://i-blog.csdnimg.cn/blog_migrate/88c3a233a4733b33bfb5d32dc1a579c6.png)
4、启动服务、端口:
![](https://i-blog.csdnimg.cn/blog_migrate/c811714431d11bf25e708602beaa6f4c.png)
5、授权用户
![](https://i-blog.csdnimg.cn/blog_migrate/e07bf5400a012c98c811279f2774119b.png)
二、slave服务器配置:
1、停止服务:
![](https://i-blog.csdnimg.cn/blog_migrate/f28e399a36aec279cab8c2d05314fad9.png)
2、修改配置文件:
![](https://i-blog.csdnimg.cn/blog_migrate/212a6a322cc7406510508b32554886e7.png)
3、创建目录、修改属组:
![](https://i-blog.csdnimg.cn/blog_migrate/dbfe7f31d9fe547e04a3534189143d8a.png)
4、启动服务:
![](https://i-blog.csdnimg.cn/blog_migrate/a0b2d9eab7cbf71fa2772efc4ce9a9f3.png)
5、连入mysql,查看中继日志状态:
![](https://i-blog.csdnimg.cn/blog_migrate/c00ce911f9698de5da27c4d5bdd78172.png)
6、查看验证(此时是没有文件的):
![](https://i-blog.csdnimg.cn/blog_migrate/4165e8b23ce430a8b61a057ec737aa08.png)
7设置连接主服务器:
![](https://i-blog.csdnimg.cn/blog_migrate/b5c12409bd9c95f16cd5c6efe3e34c82.png)
三、查看master、slave节点状态及启动slave节点:
1、查看master进程数量:
![](https://i-blog.csdnimg.cn/blog_migrate/84d2410ed7e2fad49d80891c17104499.png)
2、master查看操作日志状态:
![](https://i-blog.csdnimg.cn/blog_migrate/3566e0969e30d9a174084a63fc89ba60.png)
3、slave节点查看同步状态:
![](https://i-blog.csdnimg.cn/blog_migrate/79e9ff06403e570a2f97028bdc9a82e0.png)
4、启动同步连接服务:
![](https://i-blog.csdnimg.cn/blog_migrate/f1960b64eff82939abed5c58737e7def.png)
5、slave节点查看验证文件:
![](https://i-blog.csdnimg.cn/blog_migrate/94c235c2015d45fdf25daf5f5ab6c207.png)
6、slave节点查看同步状态:
![](https://i-blog.csdnimg.cn/blog_migrate/a81a16d584ac013b4fb13f7f32a9167a.png)
四、验证从0开始同步:
1、master上创建库:
![](https://i-blog.csdnimg.cn/blog_migrate/a37a074d5c24b2f9f03d60cca4c3d337.png)
2、master查看刚刚创建的库:
![](https://i-blog.csdnimg.cn/blog_migrate/8ad429e6454f3f05e9ca11bcc1c4be80.png)
3、master查看操作日志状态:
![](https://i-blog.csdnimg.cn/blog_migrate/f977c835f8ba96021b47edc2bfbbc4ab.png)
4、slave查看同步状态:
![](https://i-blog.csdnimg.cn/blog_migrate/f341b49ba5dc83b8c45ea9bd0003e50a.png)
5、slave查看是否同步:
![](https://i-blog.csdnimg.cn/blog_migrate/a6112902cb01be7dead1b6519200bdba.png)
6、master创建表且插入数据:
![](https://i-blog.csdnimg.cn/blog_migrate/a69da7165ccf82df392590e861f97f33.png)
7、master查看操作日志状态:
![](https://i-blog.csdnimg.cn/blog_migrate/a025ab2efd8718df31e5d8de0606b397.png)
8、slave查看同步状态:
![](https://i-blog.csdnimg.cn/blog_migrate/de5991e48b5096ded1ccb2a7b7c9522e.png)
9、查看同步的表:
![](https://i-blog.csdnimg.cn/blog_migrate/f7d82210c317dc85a2dd90ed6f588c13.png)
9、停止使用
![](https://i-blog.csdnimg.cn/blog_migrate/0b5098ad2cec3e89aa6e90d32f8800ce.png)
10、现在我停止mysqld服务,而后我又想启用mysqld服务,你说这时候会报错吗?
![](https://i-blog.csdnimg.cn/blog_migrate/867561f54035d1ab686a2845f56c2e4e.png)
11、这时候你直接启动可以吗?这时候会报错的,请看:
![](https://i-blog.csdnimg.cn/blog_migrate/8f7730788d62e93880baaa3d8399e07f.png)
12、这时候你停止服务后再次连接时候mysql会自动启动的服务的,请看:
12.1 停止连接服务:
![](https://i-blog.csdnimg.cn/blog_migrate/f3ede5da08243a2785d933794f3c70d5.png)
12.2 先停止服务在启动:
![](https://i-blog.csdnimg.cn/blog_migrate/ba1a02cc6e5b7375e217ec4b728580b9.png)
12.3 查看同步状态:
![](https://i-blog.csdnimg.cn/blog_migrate/d78b67d3538cfdf3c0d3d537a37213d3.png)
第二种方法:
一、需求:
1、演示从一半的时候开始复制,而不是从0开始复制:2、为了演示效果我们让这服务器上直接导入我之前准备好的库,然后让从服务器不从0开始复制了,这样的话会很慢的,我们从主上做备份后到从一半时恢复,看下怎么操作呢?3、为了演示效果,这里就把刚刚做数据删了,
二、master、slave的配置:
1、slave删除、停止传输(按理来说是不可以修改的):
![](https://i-blog.csdnimg.cn/blog_migrate/7decf7cdcd35aaaccc142e0d9d05ef3d.png)
2、master删除:
![](https://i-blog.csdnimg.cn/blog_migrate/ed6696bfa5e846cbdd30ccd385513e89.png)
3、master导入数据:
![](https://i-blog.csdnimg.cn/blog_migrate/67e88129956a91649fb686455eedfbb7.png)
4、查看操作日志状态(这时就已经产生很多信息了)
![](https://i-blog.csdnimg.cn/blog_migrate/0f64e0d52695b2cd7d360ae42072f266.png)
4.1 这时我不行让从服务器从0开始复制怎么办呢?锁定位置,从锁定位置开始复制:
三、备份及同步数据:
1、master创建库、表、插入数据:
![](https://i-blog.csdnimg.cn/blog_migrate/acfbe90a43e4eb268d7eabdc0924c198.png)
2、master做备份:
![](https://i-blog.csdnimg.cn/blog_migrate/f6715cb3774d81ada07ebce56122d04e.png)
3、master的数据复制slave上:
![](https://i-blog.csdnimg.cn/blog_migrate/4433e37abfc361dce601cdd6fa381e4a.png)
4、slave确认传输是停止状态:
![](https://i-blog.csdnimg.cn/blog_migrate/03d824c36c2585d18c7a3ddc04bc40fb.png)
5、slave导入数据并连入mysql:
![](https://i-blog.csdnimg.cn/blog_migrate/f4625085df0728b1f0f955629cddc18d.png)
5.1 查看:
![](https://i-blog.csdnimg.cn/blog_migrate/c682c4562b597ceb709fb06a1c6bc17d.png)
5.2 slave 授权:
![](https://i-blog.csdnimg.cn/blog_migrate/24f69078e2f0a1b8108495c6cd3eba96.png)
5.3 启动传输服务
![](https://i-blog.csdnimg.cn/blog_migrate/1d457aa5195e5c884b8113b6a73de02e.png)
5.4 查看是否启动同步:
![](https://i-blog.csdnimg.cn/blog_migrate/247cc1300b85fdea56bebe7c818bc0c4.png)
6、master测试创建数据:
![](https://i-blog.csdnimg.cn/blog_migrate/10567ab9b21e8cf9a67c5fe0267cffac.png)
6.1 查看操作日志:
![](https://i-blog.csdnimg.cn/blog_migrate/b66668acd41621416483e4171ed52f5d.png)
7、查看是否同步及查看同步状态:
![](https://i-blog.csdnimg.cn/blog_migrate/ef481ee4211606bd7e8c6c95f65e7045.png)
7.1 查看testdb库是否同步:
![](https://i-blog.csdnimg.cn/blog_migrate/a0c9592e88fec0caa6ebccb229c8b48b.png)
OK!!!