docker-compose创建MySQL主从复制模式(二)

前言

嘿,我前面还有一篇master的知识呢,请点击我来阅读😄

7. 创建slave(读数据库)

7.1 创建data和conf配置文件

# 创建文件夹
mkdir -p /usr/local/docker/mysql/slave01
cd /usr/local/docker/mysql/slave01
# 创建MySQL需要的持久卷
mkdir data 
# 创建MYSQL的配置文件
mkdir conf
vim conf/mysql.cnf
### 输入下列内容
[mysqld]
# 同一个主从模式下,id不能相同
server-id = 2
# 防止出现1055异常
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"

7.2 创建docker-compose.yml

version: '3'
services:
  slave01:
    restart: always
    image: mysql:5.7.29
    container_name: slave01
    ports:
      - 3307:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - ./data:/var/lib/mysql
      - ./conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf

networks:
  default:
    external:
      name: mysql_network

7.3 启动从库

docker-compose -up -d

8. 连接master节点

8.1 使用navicat连接slave节点

在这里插入图片描述

8.2 对slave节点操作连接master节点

# 设置连接master
change master to 
    master_host='master01',  # 主库的IP,因为使用了docker隔离机制,所以将其放入同一个网络内,使用服务名来当主机名
	master_user='uncle',    # 主库同步的用户
	master_password='123456', # 密码
	master_port=3306, # 主库的端口
	master_log_file='mysql-bin.000007', # 同步的文件 通过show master status来获取
	master_log_pos=2023; # 开始从第几行同步 通过show master status来获取
	
# 启动同步
start slave;

# 查看master状态
show slave status;

8.3 相同步骤创建另外一个slave数据库

同步
同步
主库
slave01
slave02

9. 相关图例

9.1 显示从库的状态show slave status

在这里插入图片描述

9.2 在主库内进行操作,从库也会出现相同的操作

在这里插入图片描述

10. 其他操作

10.1 停止

# 停止
stop slave;

10.2 重新设置连接master节点

# 重新设置连接master节点
reset slave;

# 设置连接master
change master to 
    master_host='master01',  # 主库的IP,因为使用了docker隔离机制,所以将其放入同一个网络内,使用服务名来当主机名
	master_user='uncle',    # 主库同步的用户
	master_password='123456', # 密码
	master_port=3306, # 主库的端口
	master_log_file='mysql-bin.000007', # 同步的文件 通过show master status来获取
	master_log_pos=2023; # 开始从第几行同步 通过show master status来获取
	
# 启动同步
start slave;

# 查看master状态
show slave status;

11. 切换master数据库的模式

点击我😄,来阅读一下MySQL数据库的模式把

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值