Mysql主从复制,持续更新

依然是用docker-compose和dockerfile来创建的mysql:5.7的镜像和容器

还是贴出来吧

文件目录

一个叫mysql的文件夹,里面放了4个挂载目录,一个dockerfile ,一个docker-compose.yml
在这里插入图片描述

dockerfile内容
只是列举了一下master的内容,我这里的设定是master端口使用3307,其他的slave使用3308和3309,其实都是3306就可以,只要在映射端口时宿主机的端口保持不同就行,比如 -p 3307:3306
FROM mysql:5.7
ENV MYSQLDUMPDIR /mysql
EXPOSE 3307
RUN  mkdir -p $MYSQLDUMPDIR && mkdir /home/mysql
docker-compose.yml

version: "3.2"
services:
  mysql:
#    networks:
#      - wyc
    build:
      context: ./
      dockerfile: ./dockerfile
    restart: always
    image: wyc_mysql
    container_name: wyc_mysql_01
    ports:
      - "3307:3307"
    volumes:
      - "/home/fd/wycplus/mysql/conf.d/:/etc/mysql/conf.d/"
      - "/home/fd/wycplus/mysql/data/:/var/lib/mysql/"
      - "/home/fd/wycplus/mysql/log/:/var/log/mysql/"
      - "/home/fd/wycplus/mysql/init.d/:/docker-entrypoint-initdb.d/"
    environment:
#      - MYSQL_USER= 'root'
#      - MYSQL_PASS= 'root'
      MYSQL_ROOT_PASSWORD: root
      MYSQL_ROOT_HOSE: '%'
      MYSQL_DATABASE: wyc_test
      TZ: Asia/Shanghai

以上都是其他篇幅的内容,不做多解释。以下正式开始主从复制的用法,用虚拟机克隆了3个,一个master,两个slave,master使用3307端口,两个slave分别使用3308 3309接口,master的server-id=1,两个slave的server-id 分别是2和3

1.修改配置文件

修改master和多个slave的日志:
my.conf (我的是mysql.conf,其实都一样)中加入以下内容
其中只需要改变server-id 就可以,其他的不用变,server-id不能相同,比如主用1,两个从分别是2 和3

#配置主从复制
server-id=1
#同步用的日志,这里我试过改成带路径的,结果用docker启动后一直显示正在启动,没有启动完成,所以就别改了
log-bin=mysql-bin
#当主库日志有变化时,从节点自动更新
log-slave-updates
#从节点跳过那些日志中有错误的操作
slave-skip-errors=all

2.在master上查看logfile和logpos

然后启动master服务,然后 使用

show master status

可以看到log_file 以及log_pos,这两个是为了在slave上使用的

在这里插入图片描述

3.在各个slave上设置主节点

change master to 
 master_host='192.168.127.10',
 master_port=3307,
 master_user='root',
 master_password='root',
 master_log_file='mysql-bin.000001',
 master_log_pos=154;

注意logfile和logpos要与刚才在master上看到的相同,否则同步会有问题。

4.在slave上查看是否连接是否成功

如下图所示

show slave status

在这里插入图片描述
show variables like "server_id"
查看当前mysql的server-id,注意sql语句是下挂线,conf文件中是减号。

最后

1.做测试的话,就用navicat 在主库中创建一条数据,看从库是否也增加了这条数据就行,反之,在从库创建数据,主库中不会出现 2.哨兵之后再更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值