• mysql主从复制docker


    1、拉取mysql:5.7镜像

    docker pull mysql:5.7
    

    2、创建主服务器配置文件

    mkdir -p /mydata/mysql-master/conf
    vi /mydata/mysql-master/conf/my.cnf
    cat /mydata/mysql-master/conf/my.cnf

    [mysqld]

    ## 设置server_id,同一局域网中需要唯一

    server_id=101

    ## 指定不需要同步的数据库名称

    binlog-ignore-db=mysql

    ## 开启二进制日志功能

    log-bin=mall-mysql-bin

    ## 设置二进制日志使用内存大小(事务)

    binlog_cache_size=1M

    ## 设置使用的二进制日志格式(mixed,statement,row)

    binlog_format=mixed

    ## 二进制日志过期清理时间。默认值为0,表示不自动清理。

    expire_logs_days=7

    ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。

    ## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致

    slave_skip_errors=1062

    3、启动主服务器并创建数据同步用户

    #启动mysql主服务器
    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 #进入容器内部 docker exec -it 9e522242352b /bin/bash #登录mysql mysql -uroot -p root #容器实例内创建数据同步用户 CREATE USER 'slave'@'%' IDENTIFIED BY 'root'; GRANT REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO 'slave'@'%' ;

     4、创建从服务器配置文件

    #创建从服务器配置文件
    mkdir -p /mydata/mysql-slave/conf/
    vi /mydata/mysql-slave/conf/my.cnf
    [mysqld]
    
    ## 设置server_id,同一局域网中需要唯一
    
    server_id=102
    
    ## 指定不需要同步的数据库名称
    
    binlog-ignore-db=mysql
    
    ## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
    
    log-bin=mall-mysql-slave1-bin
    
    ## 设置二进制日志使用内存大小(事务)
    
    binlog_cache_size=1M
    
    ## 设置使用的二进制日志格式(mixed,statement,row)
    
    binlog_format=mixed
    
    ## 二进制日志过期清理时间。默认值为0,表示不自动清理。
    
    expire_logs_days=7
    
    ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
    
    ## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
    
    slave_skip_errors=1062
    
    ## relay_log配置中继日志
    
    relay_log=mall-mysql-relay-bin
    
    ## log_slave_updates表示slave将复制事件写进自己的二进制日志
    
    log_slave_updates=1
    
    ## slave设置为只读(具有super权限的用户除外)
    
    read_only=1
    

    5、启动从服务器

    #启动从服务器
    docker run -p 3308:3306 --name mysql-slave \
    -v /mydata/mysql-slave/log:/var/log/mysql \
    -v /mydata/mysql-slave/data:/var/lib/mysql \
    -v /mydata/mysql-slave/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root  \
    -d mysql:5.7
    #进入容器内部
    docker exec -it mysql-slave /bin/bash
    #登录mysql
    mysql -uroot -p
    root
    

    6、在主机数据库查看主从同步状态

    show master status;
    

     7、在从数据库配置主从复制

    change master to master_host='192.168.111.99', master_user='slave', master_password='root', master_port=3307, master_log_file='mall-mysql-bin.000003', master_log_pos=617, master_connect_retry=30;
    

     8、在从数据库查看主从同步状态

    show slave status \G
    

     9、在从数据库中开启主从同步

    start slave;
    #在从数据库查看主从同步状态
    show slave status \G

     10、主从复制测试

    #在主机新建数据库-使用库-新建表-插入数据
    create database db01;
    use db01;
    create  table student_copy(
    id int primary key,
    name varchar(20)
    )Engine=InnoDB default charset utf8;
    insert into student_copy values (5,'55');
    #查询已插入数据
    select * from student_copy;

    #在从数据库-查看记录
    use db01;
    select * from student_copy;
    

  • 相关阅读:
    [ZJOJ] 5772【NOIP2008模拟】今天你AK了吗
    exgcd扩展欧几里得求解的个数
    Dinic当前弧优化 模板及教程
    [Luogu] P3907 圈的异或
    提升——树形DP
    C++ 优先队列
    C++ 洛谷 P2458 [SDOI2006]保安站岗 from_树形DP
    C++ 洛谷 2014 选课 from_树形DP
    C++ luogu1352没有上司的舞会 from_树形DP
    浅说——树形DP
  • 原文地址:https://www.cnblogs.com/zszitman/p/16843268.html
Copyright © 2020-2023  润新知