• docker下,mysql主从复制配置


    1、下载mysql镜像

    docker pull mysql:latest

    2、执行安装

    docker run -d --name mysql-master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

    指定主库为3307端口,映射容器中的3306端口,指定root密码为123456

    3、查看网络

    docker network ls  

     4、把主库加入到网络中

     docker network connect newwork mysql-master

    5、 进入到 mysql-master 修改配置文件

     编辑 docker.cnf

    ## 同一局域网内注意要唯一

    server-id=1

    ## 开启二进制日志功能,可以随便取(关键)

    log-bin=master-bin

    binlog-format=ROW// 二级制日志格式,有三种 row,statement,mixed

    6、重启主服务器 docker 容器 

    docker restart mysql-master

    7、在Master数据库创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据

        

    CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.*  TO 'slave'@'%';

     8、配置从库

    docker run -d --name mysql-slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql    

    docker network connect newwork  mysql-slave 

     docker exec -it mysql-slave /bin/bash   

    配置Slave

    注意:mysql 8.0以上版本,会报连接错误,是由于mysql改变了加密方式

    在master数据库中

    执行

    user mysql;

    ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    flush privileges;
    退出重启一下主库的容器

    类似于Master,使用docker命令docker exec -it mysql-slave /bin/bash 进入到slave容器中,进入到etc/mysql路径,使用vim命令编辑my.cnf文件:

    [mysqld]

    ## 设置server_id,注意要唯一

    server-id=101

    ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用

    log-bin=mysql-slave-bin

    ## relay_log配置中继日志
    进入Master库mysql客户端:输入show master status查看Master状态:

     查看主服务器的地址

     docker inspect mysql-master

     

     进入到Slave库myslq客户端,执行如下命令:

    CHANGE MASTER TO MASTER_HOST='172.17.0.6', MASTER_USER='slave',MASTER_PASSWORD='root',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=157;

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

    master_user:用于数据同步的用户

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

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

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

    master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

     

    在Slave 中的mysql终端执行show slave status \G;用于查看主从同步状态。

  • 相关阅读:
    Java 运动模糊
    Efounds笔试
    Algorithms code
    Java 画图
    Java 笔记
    Java 对二值化图片识别连通域
    工厂模式
    数据库克隆
    SQL优化
    微信调起jssdk一闪而过
  • 原文地址:https://www.cnblogs.com/huangguojin/p/16309173.html
Copyright © 2020-2023  润新知