美文网首页
Docker搭建MySql数据库主从架构

Docker搭建MySql数据库主从架构

作者: 葉糖糖 | 来源:发表于2023-05-11 17:59 被阅读0次

    相比传统的架构设计,使用Docker来搭建数据库的主从模式更加简单。本节内容,我们就Docker搭建MySql主从模式来做一些了解,文中的搭建方法仅仅是一种最简单的方式,具体的业务场景还需要小伙伴们自行加固,本文仅做学习参考之用。

    一、下载镜像文件

    出于对系统的稳定性和减少部署麻烦,本文使用MySql5.7的版本来做演示。

    docker pull mysql:5.7.25
    

    二、运行容器实例
    1、主库docker run -p 3306:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.25
    2、从库 docker run -p 3307:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.25

    三、容器安装vim(文本编辑器)

    因需要修改mysql中的my.cnf文件,所以安装vim来修改。当然你也可以使用其他方式来修改/etc/mysql/my.cnf这个配置文件。

    1、进入容器实例内部控制终端docker exec -it 容器id/bin/bash
    2、执行指令mv /etc/apt/sources.list /etc/apt/sources.list.bak
    3、执行指令

    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
    

    4、执行指令 apt-get update
    5、执行指令 apt-get install vim
    6、在主库中执行show master status;,记录一下File字段的值和Position字段的值。
    7、在主库创建用户并赋予权限

    CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
    

    8、cd到/etc/mysql/目录下,执行 vim my.cnf
    9、修改配置文件,添加如下配置

    [mysqld]
    server-id=1000
    log-bin=mysql-bin
    

    10、重启主库和容器

    service mysql restart
    docker start mymysql-master
    

    11、修改从库配置文件并重启mysql

    server-id=1001
    log-bin=mysql-slave-bin
    relay_log=edu-mysql-relay-bin
    

    12、进入从库命令模式,执行如下指令

    如果不清楚主库的容器ip,可以使用docker inspect id/名称来查看。正常情况下容器实例的ip其实是动态获取的,所以建议使用自定义网络来设置固定ip;

    change master to master_host='172.17.0.4', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 617, master_connect_retry=30;

    13、开启主从同步过程

    在从库的mysql命令行中执行。

    start slave

    14、查看主从同步状态

    show slave status \G
    

    四、测试主从同步
    PS:在主库中新建数据库,看从库是否能同步过来。

    相关文章

      网友评论

          本文标题:Docker搭建MySql数据库主从架构

          本文链接:https://www.haomeiwen.com/subject/pevssdtx.html