文章目录

一、解决同步和数据初始化
1. 主节点node1脚本同步

# 脚本同步
# 将bak_imooc.sql同步到从机node4节点
[root@node1 ~]# scp bak_imooc.sql root@192.168.92.104:/root

2. 数据初始化

从节点node3,执行数据初始化

# 创建customer_db数据库
mysql -uroot -p -e"create database customer_db"
# 将bak_imooc.sql导入到product_db数据库中
mysql -uroot -p customer_db<

二、创建复制链路
2.1. 登陆数据库

# 登陆数据库

2.2. 建立复制的链路

change master to master_host='192.168.92.101',master_user='im_repl',master_password='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;

  • master_host:主节点的ip
  • master_user:在主节点创建数据复制同步的用户
  • master_password:主从复制用户的密码
  • MASTER_LOG_FILE:同步开始的时间点(开始同步的文件名,开始复制日志的事务点),这个记录在备份同步的文件中

[root@node2 ~]# more bak_imooc.sql 

# 内容
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_链路

2.3. 查看链路

show slave status \G

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_一主三从_02

2.4. 设置过滤链路 进行数据库名映射

声明:如果master数据库名和从节点数据库名一致的话,设置过滤链路 可以跳过.这里是进行垂直拆分,主从数据库名不一致,因此,需要设置过滤链路。

# 主从数据库名映射
change replication filter replicate_rewrite_db=((imooc_db,customer_db));

2.5. 启动复制链路

start slave;

2.6. 查看链路

show slave status \G

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_mysql_03

三、测试验证主从复制
3.1. 服务器分布

# 使用product_db
use customer_db;

# 查询region_info 表数据
select * from region_info ;

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_一主三从_04

3.2. 一主三从验证

node1

# 登录node1节点添
[root@node1 mysql]# mysql -uroot -p
Enter password: 123456

# 使用imooc_db数据库
mysql> use imooc_db;

# 修改一条数据
update region_info set region_name = "中国(china)" where region_id =1;

# 查询修改后的数据
select * from region_info;

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_mysql_05

node2

# 登录node2节点添
[root@node1 mysql]# mysql -uroot -p
Enter password: 123456

# 使用order_db数据库
mysql> use order_db;

# 查询region_info表的数据(node1修改后的数据)
select * from region_info;

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_数据_06

node3

# 登录node3节点添
[root@node1 mysql]# mysql -uroot -p
Enter password: 123456

# 使用product_db数据库
mysql> use product_db;

# 查询region_info表的数据(node1修改后的数据)
select * from region_info;

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_数据_07

node4

# 登录node4节点添
[root@node1 mysql]# mysql -uroot -p
Enter password: 123456

# 使用customer_db数据库
mysql> use customer_db;

# 查询region_info表的数据(node1修改后的数据)
select * from region_info;

企业实战_09_MyCat 搭建Mysql 一主三从复制环境_一主三从_08

3.3. 得出结论

这条数据是咱们在master节点修改的,现在node1、node2、node3、node4都数据同步了,因此,一主三从环境经过验证是没问题的!