zoukankan      html  css  js  c++  java
  • docker搭建数据库主从复制

    首先需要安装docker镜像:

    docker pull mysql:5.7

    由于需要启动数据库才可以进入数据修改my.cnf文件,可以选择安装vi命令,也可以选择挂在

    在此选择是挂载的方法进行安装:

    docker run --name mastermysql -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=1234 -v /usr/master/data:/var/lib/mysql -v /usr/master/conf/my.cnf:/etc/mysql/my.cnf  mysql:5.7
    docker run --name slavermysql -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=1234 -v /usr/slaver/data:/var/lib/mysql -v /usr/slaver/conf/my.cnf:/etc/mysql/my.cnf  mysql

    这样就可以创建两个mysql容器,但是需要修改my.cnf,上面创建的是文件文件夹

    进入 cd /usr/master

    执行 rm -rf my.cnf

    再执行 vi my.cnf

    加入:

    [mysqld]
    ## 同一局域网内注意要唯一
    server-id=100  
    ## 开启二进制日志功能,可以随便取(关键)
    log-bin=mysql-bin

    在从数据库中也是如此操作:

    在文件中加入:

    [mysqld]
    ## 设置server_id,注意要唯一
    server-id=101  
    ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
    log-bin=mysql-slave-bin   
    ## relay_log配置中继日志
    relay_log=edu-mysql-relay-bin

    这样就可以了:

    再次启动两个mysql容器:

    首先进入主数据:

    docker exec -it mastermysql bash
    
    mysql -u root -p
    
    输入密码
    
    执行:
    GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';
    
    
    show master status;
    
    这里是需要记住相关内容的

    还需要给两个实例设置独立的ip

    执行:

    docker inspect --format='{{.NetworkSettings.IPAddress}}' slavermysql
    docker inspect --format='{{.NetworkSettings.IPAddress}}' mastermysql

    再进入从数据库:

    docker exec -it slavermysql bash
    
     mysql -u root -p
    输入密码
    
    
    change master to master_host='172.17.0.3',master_user='backup',master_password='123456',master_log_file='mysql-bin.0000003',master_log_pos=154,master_port=3306;


    执行
    start slave;
    再执行
    show slave statusG;

    master_host :Master的地址,指的是容器的独立ip,可以通过docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id查询容器的ip

    master_port:Master的端口号,指的是容器的端口号

    master_user:用于数据同步的用户

    master_password:用于同步的用户的密码

    master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值

    master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值

    然后就可以看到:

    再在主数据库中创建test数据库:

    再进入从数据库中查看:

    代表已经安装成功

  • 相关阅读:
    UnityShader
    Unity
    Tools
    linux下解压命令
    进程 同步、互斥
    I/O模型
    jclass jobject
    javah javap
    IDA 结构体
    Windows CSRSS API List (NT/2000/XP/2003/Vista/2008/7/2012/8)
  • 原文地址:https://www.cnblogs.com/xiufengchen/p/10391253.html
Copyright © 2011-2022 走看看