mysql主从复制

  1. 下载mysql镜像

  2. 创建master实例并启动

     

    docker run \
        -p 3307:3306 \
        --name mysql-master \
        -v /mydata/mysql/master/log:/var/log/mysql \
        -v /mydata/mysql/master/data:/var/lib/mysql \
        -v /mydata/mysql/master/conf:/etc/mysql \
        -e MYSQL_ROOT_PASSWORD=root \
        -d mysql:5.7

    修改配置文件

    vi /mydata/mysql/master/conf/my.conf
    [client]                                        # 客户端设置,即客户端默认的连接参数
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [mysqld]                                        # 服务端基本设置
    init_connect='SET collation_connection = utf8_unicode_ci'        
    init_connect='SET NAMES utf8mb4'       
    character-set-server = utf8mb4   
    collation-server = utf8mb4_general_ci
    skip-character-set-client-handshake
    skip_name_resolve 
    

    添加master主从复制部分配置

    server-id = 1                                  # Mysql服务的唯一编号 每个mysql服务Id需唯一
    log-bin = mysql-bin                            # 开启mysql binlog功能
    read-only=0                                    # 是否只读,1是0否
    binlog_do_db=gulimall_ums                      # 哪一个数据库的增删改查需要记录改动日志
    binlog_do_db=gulimall_pms
    binlog_do_db=gulimall_oms
    binlog_do_db=gulimall_sms
    binlog_do_db=gulimall_wms
    binlog_do_db=gulimall_admin
    #...
    replicate-ignore-db=mysql                      # 哪些表需要忽略,一般是mysql的配置相关表
    replicate-ignore-db=sys
    replicate-ignore-db=information_schema
    replicate-ignore-db=performance_schema

     

  3. 创建slave实例并启动

    docker run \
        -p 3317:3306 \
        --name mysql-slaver-01 \
        -v /mydata/mysql/slaver/log:/var/log/mysql \
        -v /mydata/mysql/slaver/data:/var/lib/mysql \
        -v /mydata/mysql/slaver/conf:/etc/mysql \
        -e MYSQL_ROOT_PASSWORD=root \
        -d mysql:5.7
    server-id = 2                                  # Mysql服务的唯一编号 每个mysql服务Id需唯一
    log-bin = mysql-bin                            # 开启mysql binlog功能
    read-only=1                                    # 是否只读,1是0否
    binlog_do_db=gulimall_ums                      # 哪一个数据库的增删改查需要记录改动日志
    binlog_do_db=gulimall_pms
    binlog_do_db=gulimall_oms
    binlog_do_db=gulimall_sms
    binlog_do_db=gulimall_wms
    binlog_do_db=gulimall_admin
    #...
    replicate-ignore-db=mysql                      # 哪些表需要忽略,一般是mysql的配置相关表
    replicate-ignore-db=sys
    replicate-ignore-db=information_schema
    replicate-ignore-db=performance_schema

     

  4. 为master授权用户来同步他的数据

    1. 进入master容器

      docker exec -it mysql-master /bin/bash

       

    2. 进入mysql内部

      mysql -uroot -p

       

    3.  

      授权root用户可以远程访问(这一步与主从同步无关)

      放开3307和3317端口

       

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
      
      FLUSH   PRIVILEGES;

       

    4.  

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值