• 【docker配置mysql主从复制模式】


    1.获取mysql镜像: docker pull mysql:5.7

    2.查看镜像:docker images

    在这里插入图片描述

    3.分别启动两个mysql容器,

    主库: docker run -p 3307:3306 --name master_mysql -e MYSQL_ROOT_PASSWORD=123456 -d c20987f18b13
    从库: docker run -p 3308:3306 --name slave_mysql -e MYSQL_ROOT_PASSWORD=123456 -d c20987f18b13

    4.分别进入两个容器《 docker exec -it 容器Id /bin/bash 》进入目录 cd /etc/mysql 需要编辑该目录下的 my.conf文件

    安装vim

    • apt-get update
    • apt-get install vim

    主库配置

    [mysqld]
    ## 同一局域网内注意要唯一
    server-id=100
    ## 开启二进制日志功能,可以随便取(关键),同步的日志路径及文件名,一定注意这个目录要是 MySQL 有权限写入的
    log-bin=mysql-bin
    ## 可选要同步的数据库名,不配置此参数代表所有的库
    #binlog-do-db=
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    从库配置

    [mysqld]
    server-id=101
    log-bin=mysql-slave-binlog
    #relay_log配置中继日志
    relay_log=mysql-relay-bin
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5.在master数据库(主库)中创建同步用户授予用户slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据

    GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123'; 
    FLUSH PRIVILEGES;
    #出错使用下面命令在执行
    ALTER USER ‘slave’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123’;
    FLUSH PRIVILEGES;
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 第一行命令是从机登陆用户名为slave 密码为123,%代表不限制ip地址登陆,如果限制IP地址登陆把这里改成需要的设置的IP即可,登陆成功可以操作任意库中的任意表
    2. 第二行为刷新

    6.重启master数据库 service mysql restart 重启后容器会停止,需要重新启动容器 docker restart xxx 镜像ID

    1. 进入容器查看master主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复:
    show master status;
    
    • 1

    在这里插入图片描述

    7.在容器外查询master_host 后面跟容器名字或者容器ID

    docker inspect --format='{{.NetworkSettings.IPAddress}}  容器ID
    
    • 1

    在这里插入图片描述

    8.从库配置完my.conf 需要重启 在进入容器执行命令

    change master to master_host='172.17.0.4', master_user='slave', master_password='123', master_port=3306, master_log_file='mysqle-binlog.000001', master_log_pos= 154, master_connect_retry=30;
    #执行完上一步 在刷新一下
    flush privileges;
    
    • 1
    • 2
    • 3

    这里配置了主库的host地址 和用户名密码 端口号以及binlog日志文件 备份的节点

    • 8.1启动 slave 进程
    start slave;
    
    • 1
    • 8.2 查看从库状态
    show slave status \G
    
    • 1

    在这里插入图片描述
    主要这两个配置都为yes证明配置成功
    注意: 如果这两个有一个不为 YES ,表示主从环境搭建失败,此时可以阅读日志,查看出错的原因,再具体问题具体解决

    • 1.第一个为NO 证明是 主从配置server-id=100 这个值重复
    • 2.第二个为NO 需要具体看日志分析错误情况

    总结:本文主要说了 MySQL 主从环境搭建 基于docker,那么基于linux大差不差的步骤,以上步骤经过反复测试,只要按照以上步骤操作,不会出现搭建失败的问题

  • 相关阅读:
    没有Web.xml文件Tomcat是如何获取应用配置信息的?
    失业登记对养老保险是否有影响
    微信如何设置自动回复消息,提升沟通效率的?
    函数调用栈
    java计算机毕业设计网上书店进销存管理系统源程序+mysql+系统+lw文档+远程调试
    git 删除分支
    Tomcat
    【经验总结】Ubuntu 源代码方式安装 Microsoft DeepSpeed
    SpringMvc(二)- 请求处理参数 和 响应数据处理
    Linux之Redis 缓存雪崩,击穿,穿透
  • 原文地址:https://blog.csdn.net/weixin_43123066/article/details/126870779