docker 配置 redis 主从
安装MySQL
使用Docker拉取MySQL镜像
# docker pull mysql:5.7
利用刚才的镜像构建容器
docker run --name master -p 3406:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
docker run --name slave -p 3506:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
查看容器是否成功
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
53c7082cc45c mysql:5.7 "docker-entrypoint.s…" About an hour ago Up 28 minutes 33060/tcp, 0.0.0.0:3506->3306/tcp slave
01bc525eb7f7 mysql:5.7 "docker-entrypoint.s…" 5 hours ago Up 29 minutes 33060/tcp, 0.0.0.0:3406->3306/tcp master
修改配置文件
# 确定 master 容器 msyql 配置文件(现在的容器是 mysqld.cnf)
#第一步 拷贝容器的文件到 宿主机(如果没有 对应的目录需要创建)
docker cp master:/etc/mysql/mysql.conf.d/mysqld.cnf /usr/local/mysql/master/mysqld.cnf
# 第二步 编辑 mysqld.cnf 在 [mysqld] 节点最后加上后保存
log-bin=mysql-bin
server-id=1 # 很重要 这个是唯一 用来生成 uuid
# 第三步 拷贝配置文件到 容器
docker cp /usr/local/mysql/master/mysqld.cnf master:/etc/mysql/mysql.conf.d/mysqld.cnf
# 第四步 从容器同样的操作 server-id 不能相同(切记)
# 记得重启容器
navicat 连接 (master)msyql 服务器 实现主从复制
show master status;
navicat 连接 (slave)msyql 服务器 实现主从复制
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='192.168.56.99',
MASTER_PORT=3406,
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS = 1640,
MASTER_USER='root',
MASTER_PASSWORD='root';
START SLAVE;
show slave status;
在 从 容器 查看 主从复制状态
show slave status;
两个都为 YES 说明成功
如果有问题,需要检查 IP,端口 ,用户名和密码,MASTER_LOG_FILE,MASTER_LOG_POS 是否正确
本作品采用《CC 协议》,转载必须注明作者和本文链接