1、首先安装docker
(1)sudo yum install -y yum-utils device-mapper-persistent-data lvm2(安装必要工具包)
(2)sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo(添加docker官方软件源)
(3)sudo yum install -y docker-ce docker-ce-cli containerd.io(安装docker引擎)
(4)sudo docker run hello-world(验证docker是否成功安装)
2、新建三台容器
(1)master主机:(root password: riCXT8zM)
Linux> docker run –name master -p 3308:3306 -v /root/docker/volumes/etc/master/my.cnf:/etc/my.cnf -v /root/docker/volumes/etc/master/my.cnf.d:/etc/mysql/my.cnf.d -v /root/docker/volumes/etc/master/conf.d:/etc/mysql/conf.d -v /root/docker/volumes/var/lib/master:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=riCXT8zM -d mysql:latest
(2)slave01从机:(root password: riDYQ8zM)
Linux> docker run –name slave01 -p 3309:3306 -v /root/docker/volumes/etc/slave01/my.cnf:/etc/my.cnf -v /root/docker/volumes/etc/slave01/my.cnf.d:/etc/mysql/my.cnf.d -v /root/docker/volumes/etc/slave01/conf.d:/etc/mysql/conf.d -v /root/docker/volumes/var/lib/slave01:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=riDYQ8zM -d mysql:latest
(3)slave02从机:(root password: riEZG8zM)
Linux> docker run –name slave02 -p 3310:3306 -v /root/docker/volumes/etc/slave02/my.cnf:/etc/my.cnf -v /root/docker/volumes/etc/slave02/my.cnf.d:/etc/mysql/my.cnf.d -v /root/docker/volumes/etc/slave02/conf.d:/etc/mysql/conf.d -v /root/docker/volumes/var/lib/slave02:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=riEZG8zM -d mysql:latest
(4)查看三个容器状态:
Linux> docker ps -a
3、设置两个从机的server_id
(1)slave01从机:
Linux> docker exec -it slave01 /bin/bash (进入slave01容器内部)
容器id> cat /etc/mysql/my.cnf (用于 查看 MySQL 数据库的主配置文件内容)
容器id> sed -i ‘$a server_id=2’ /etc/mysql/my.cnf (在 MySQL 配置文件 /etc/mysql/my.cnf 的末尾添加 server_id=2 的配置)
容器id>exit (退出容器)
Linux> docker restart slave01 (重启slave01容器)
Linux> docker exec -it slave01 /bin/bash (进入slave01容器内部)
容器id>mysql -uroot -priDYQ8zM (mysql -uroot -p是从容器进入数据库的命令,后面直接加数据库slave01的密码)
mysql> show variables like ‘server_id’; (查看slave01的 server_id是否变为2)
+—————+——-+
| Variable_name | Value |
+—————+——-+
|      server_id     | 2 |
+—————+——-+
(2)slave02从机:
Linux> docker exec -it slave02 /bin/bash (进入slave02容器内部)
容器id> cat /etc/mysql/my.cnf (用于 查看 MySQL 数据库的主配置文件内容)
容器id> sed -i ‘$a server_id=3’ /etc/mysql/my.cnf (在 MySQL 配置文件 /etc/mysql/my.cnf 的末尾添加 server_id=3 的配置)
容器id>exit (退出容器)
Linux> docker restart slave01 (重启slave02容器)
Linux> docker exec -it slave01 /bin/bash (进入slave02容器内部)
容器id>mysql -uroot -priEZG8zM (进入slave02数据库)
mysql> show variables like ‘server_id’; (查看slave02的 server_id是否变为3)
+—————+——-+
| Variable_name | Value |
+—————+——-+
|     server_id      | 3 |
+—————+——-+
4、进入主机查看主库的二进制日志状态
Linux>docker exec -it master /bin/bash (进入master容器内部)
容器id>mysql -uroot -priCXT8zM (进入数据库)
mysql> show master status; (查看主库的二进制日志状态) { 记住File跟Position这两个后面要用 }
+——————+———-+————–+——————+——————-+
|              File          |Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————+———-+————–+——————+——————-+
| mysql-bin.000002 |    154    |                       |                              |                          |
+——————+———-+————–+——————+——————-+
5、设置两个从机的配置,进行主从复制 (其实两台从机的配置方案都一样)
(1)设置slave01从机配置:
Linux> docker exec -it slave01 /bin/bash (进入slave01容器内部)
容器id>mysql -uroot -riDYQ8zM (进入slave01数据库)
mysql>STOP SLAVE IO_THREAD; (先停止IO线程)
mysql>change master to (开始修改配置)
master_port=3308, (填主库的端口号)
master_user=’root’, (使用root用户连接主机)
master_password=’riCXT8zM’, (填进入主机数据库的那个密码)
master_host=’ ‘, (填你自己实例的公网或私网的IP)
master_log_file=’ ‘, (填第三步查看的file文件)
master_log_pos= ; (填第三步查看的pos)
mysql>START SLAVE; (重新启动复制)
mysql>SHOW SLAVE STATUS\G (检查状态)
如下参数都为YES======>恭喜从机slave01配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
(2)设置slave02从机配置:
Linux> docker exec -it slave02 /bin/bash (进入slave02容器内部)
容器id>mysql -uroot -priEZG8zM (进入slave02数据库)
mysql>STOP SLAVE IO_THREAD; (先停止IO线程)
Linux>change master to (开始修改配置)
master_port=3308, (填主库的端口号)
master_user=’root’, (使用root用户连接主机)
master_password=’riCXT8zM’, (填进入主机master数据库的那个密码)
master_host=’ ‘, (填你自己实例的公网或私网的IP)
master_log_file=’ ‘, (填第三步查看的file文件)
master_log_pos= ; (填第三步查看的pos)
mysql>START SLAVE; (重新启动复制)
mysql>SHOW SLAVE STATUS\G (检查状态)
如下参数都为YES======>恭喜从机slave02配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
下载链接:https://pan.baidu.com/s/1lDA2iwu9boELj_MtRz0Law?pwd=98pq







