作者:天码星空 链接: https://my.oschina.net/u/2399373/blog/2878650
多主一从,也称为多源复制,数据流向:
注:使用docker部署mysql实例,方便快速搭建演示环境。但本文重点是讲解主从配置,因此简略描述docker环境构建mysql容器实例。
注:若不熟悉docker,可使用传统方式安装mysql,效果相同。
连接mysql主数据库,键入命令mysql -u root -p,输入密码后登录数据库。创建用户用于从库同步复制,授予复制、同步访问的权限
创建用户用于从库同步复制,授予复制、同步访问的权限
创建用户用于从库同步复制,授予复制、同步访问的权限
登录【从库10345】,进入mysql命令行。
stop slave; //停止同步
start slave; //开始同步
//必须和【主库】的信息匹配。 CHANGE MASTER TO MASTER_HOST='192.168.10.212', //主库IP MASTER_PORT=4300, //主库端口 MASTER_USER='slave', //访问主库且有同步复制权限的用户 MASTER_PASSWORD='123456', //登录密码 //【关键处】从主库的该log_bin文件开始读取同步信息,主库show master status返回结果 MASTER_LOG_FILE='mysql-bin.000003', //【关键处】从文件中指定位置开始读取,主库show master status返回结果 MASTER_LOG_POS=438 for channel '300'; //定义通道名称
可以看见设置三个的主从同步通道的所有状态信息。
只有【Slave_IO_Running】和【Slave_SQL_Running】都是Yes,则同步是正常的。
如果是No或者Connecting都不行,可查看mysql-error.log,以排查问题。
配置完成,则【从库10345】开始自动同步。
若需要单独启动或停止某个同步通道,可使用如下命令:
start slave for channel '300'; //启动名称为300的同步通道 stop slave for channel '300'; //停止名称为300的同步通道
使用root账号登录【主库300】,创建test3数据库
在【主库300】中创建user表
在【主库300】中向user表插入一条数据:
在【从库10345】中查询user表数据:
新增记录同步成功。
在【主库300】中修改刚才插入的数据:
在【从库10345】中查询user表数据:
更新记录同步成功。
在【主库300】中删除刚才更新的数据:
在【从库10345】中查询user表数据:
删除记录同步成功。
注:【主库400】、【主库500】的验证操作与上述类似。
补充: