美文网首页
Mysql主从配置(基于docker)

Mysql主从配置(基于docker)

作者: BananaNo1 | 来源:发表于2019-12-05 14:09 被阅读0次

    Mysql主从配置(基于docker)

    安装docker

    ## 如果安装了 docker 可以选择卸载 也可直接使用
    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    ##安装必要的系统依赖 
    ##即使系统已存在该环境也可以再次运行
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
    ## 添加软件源信息  使用阿里下载源 
    yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
    ## 更新yum缓存
    sudo yum makecache fast
    ##  安装高版本 docker-ce
    yum -y install docker-ce
    
    

    启动Docker

    • 查看状态 sudo systemctl status docker

      初次安装成功后默认是不会自动启动 Docker 服务的,此时查看运行状态的输出结果不会包括 Active: active (running) 而是 Active: inactive (dead) .
      
    • 首次启动 sudo systemctl start docker

      安装后默认是没有启动 Docker 服务的,因此安装后需要先启动 Docker 服务,再次查看运行状态 sudo systemctl status docker 应该会出现正在运行 Active: active (running) .
      
    • 重新启动 sudo systemctl restart docker

      如果 Docker 服务已停止可以重新启动,如果已经启动也可以重新启动.
      
    • 停止服务 sudo systemctl stop docker

      如果正在运行的 Docker 存在问题需要停止维修,那么可以先停止 Docker 服务,待维修结束后可以运行 sudo systemctl start docker 再次启动服务.
      
    • 检查自启 systemctl list-unit-files | grep enabled | grep docker

      检查 Docker 服务是否会开机自启,如果存在结果则表示会开机自启,如果没有结果则表示不会开机自启.
      
    • 开机自启 sudo systemctl enable docker

      Docker 服务是非常重要的进程服务,一般需要开机自启,保证意外关机后能自行恢复服务,推荐开机自启.
      
    • 禁止自启 sudo systemctl disable docker

      如果不小心设置了开机自启而你真的不打算开机自启的话,那么可以禁用开机自启功能,下次电脑重启后不会自动启动Docker 服务.
      
    • 查看版本 docker version

    卸载docker

    sudo yum remove docker-ce
    sudo rm -rf /var/lib/docker
    

    https://my.oschina.net/snowdreams1006/blog/3135995

    安装启动mysql 5.6

    docker pull mysql:5.6:安装mysql5.6

    docker run --name mysql -v /mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123456' -d mysql:5.6 :启动mysql 将配置文件挂载到/mysql/my.cnf

    没有配置 系统默认创建文件夹 不是文件,会报错.

    开启主从配置文件

    配置主机

    在master上 修改外挂的配置文件 my.cnf

    [mysqld]
    log-bin=mysql-bin
    server-id=196 //同一局域网类必须唯一,一般设为ip
    binlog-ignore-db=mysql //复制过滤 一般不同步mysql
    

    进入docker容器

    docker exec -it 容器名 /bin/bash

    mysql中创建用户

    grant replication slave on *.* to username@'%' identified by password

    %代表所有用户都可以连,可以换成ip地址增加安全性
    username:用户名
    password:密码
    

    show master status:记录下==file==和==position==的值

    ps:记录下值后不要继续操作master,避免值发生改变

    配置从机

    ​ 在slave上面修改my.cnf文件

    [mysqld]
    server-id=129
    ##开启二进制日志功能,以备salve作为其他slave的master时使用
    log-bin=mysql-slave-bin
    binlog-ignore-db=mysql
    relay_log=mysql-relay-bin
    

    binlog :记录下所有数据的更改,可用于本机数据恢复和主从同步

    relaylog:

    mysql主节点将binlog写入本地,从节点定时请求增量binlog,主节点将binlog同步到从节点。

    从节点单独进程会将binlog 拷贝至本地 relaylog中。

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

    master_port:mysql主节点的地址
    master_user:主机中创建的用户 一般不适用root
    master_password:主机中创建的用户密码
    master_port:端口号
    master_log_file:主机中记录下的file值
    master_log_pos:主机中记录的position值
    master_connect_retry:如果连接失败,重试的时间间隔,单位是s,默认60s
    

    start slave:开启主从

    show slave status\G

    正常情况下SlaveIORunning和SlaveSQLRunning都是yes
    
    SlaveIORunning为connecting
     检查连接地址,账号密码和文件是否正确
    

    相关文章

      网友评论

          本文标题:Mysql主从配置(基于docker)

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