Replication集群是一种弱一致性的集群
Replication是MySQL内部的数据机制组建的集群,是通过MySQL的 binlog来实现数据同步的

安装镜像

之前我们搭建了四个Docker虚拟机,并且把四个docker虚拟机加入了swarm集群。
后来在swarm集群中,使用docker搭建了PXC集群,
现在把 Replication集群搭建在Dokcer容器中

在已经加入swarm集群的Docker虚拟机上pull下replication镜像

  1. docker pull mishamx/mysql
  2. docker tag mishamx/mysql rep
  3. docker rmi mishamx/mysql

创建Replication集群

主节点

创建主节点Docker容器

  1. -e MYSQL_DATABASE=web
  2. -e MYSQL_USER=web
  3. -e MYSQL_PASSWORD=web
  4. -e MYSQL_ROOT_PASSWORD=root_password
  5. -e MYSQL_REPLICATION_USER=user_for_slave
  6. -e MYSQL_REPLICATION_PASSWORD=user_password_for_slave
  7. docker run -d -p 9003:3306
  8. --name rn1
  9. -e MYSQL_MASTER_PORT=3306
  10. -e MYSQL_ROOT_PASSWORD=abc123456
  11. -e MYSQL_REPLICATION_USER=backup
  12. -e MYSQL_REPLICATION_PASSWORD=backup123
  13. -v rnv1:/var/lib/mysql
  14. --privileged
  15. --net=swarm_mysql
  16. rep

-d 指后台运行PXC,而不是进入docker的bash页面-p 指端口的映射,把3306映射到9001端口
-e 中的配置是用户密码,集群名称,同步数据的用户名以及密码
-v 指挂载数据卷的名称 以及数据卷在宿主机中的目录。
–privileged 指对数据卷有读写的权限。
–net 指出该容器加入的网络

从节点

  1. -e MYSQL_MASTER_HOST=mysql_master
  2. -e MYSQL_MASTER_PORT=3306
  3. -e MYSQL_REPLICATION_USER=user_for_slave
  4. -e MYSQL_REPLICATION_PASSWORD=user_password_for_slave
  5. docker run -d -p 9003:3306
  6. --name rn2
  7. -e MYSQL_MASTER_HOST=rn1
  8. -e MYSQL_MASTER_PORT=3306
  9. -e MYSQL_ROOT_PASSWORD=abc123456
  10. -e MYSQL_REPLICATION_USER=backup
  11. -e MYSQL_REPLICATION_PASSWORD=backup123
  12. -v rnv2:/var/lib/mysql
  13. --privileged
  14. --net=swarm_mysql
  15. rep

-e master_host =rn1指出了该节点为从节点
加入rn1为管理节点的集群。
这样replication集群就搭建完毕了