• MySql Docker 主主配置


    MySql 主主

    准备2台Linux服务器,并且在两台服务器上,同时安装docker,国内的同学可以使用aliyun的镜像安装。

    curl -fsSL https://get.docker.com -o get-docker.sh
    sh get-docker.sh
    

    然后,启动MySql 容器

    docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    

    配置第一台服务器的mysql

    # 进入mysql 容器
    docker container ls 
    docker exec -it mysql1 /bin/bash
    
    # 安装vim, 如果已经安装,则可以略过
    apt-get update
    apt-get install vim
    
    # 进入mysql 服务器之后,修改配置文件
    cd /etc/mysql
    vi my.cnf
    
    # 增加以下配置内容
    
    [mysqld] 
    server_id = 1 
    log-bin= mysql-bin
    replicate-ignore-db=mysql 
    replicate-ignore-db=sys 
    replicate-ignore-db=information_schema 
    replicate-ignore-db=performance_schema
    read-only=0
    relay_log=mysql-relay-bin
    log-slave-updates=on
    auto-increment-offset=1
    auto-increment-increment=2
    
    # 重启mysql服务
    service mysql restart
    docker container start mysql1
    
    # 创建一个用户来同步数据,重新进入容器,然后登陆mysql
    docker exec -it mysql1 /bin/bash
    mysql -uroot -p123456
    
    
    # 这里表示创建一个slave同步账号slave,允许访问的IP地址为%,%表示通配符
    GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
    
    
    # 查看状态,记住File、Position的值,在另外一个服务器中将用到
    show master status;
    
    
    # 查看容器IP, 退出mysql
    exit;
    exit;
    docker inspect mysql1 | grep IPA
    

    配置第二台mysql 服务器

    # 进入mysql的容器 
    docker exec -it mysql2 /bin/bash
    
    # 安装vim, 如果已经安装,则可以略过
    apt-get update
    apt-get install vim
    
    # 修改配置文件
    cd /etc/mysql 
    vi my.cnf
    
    # 增加如下配置
    
    [mysqld] 
    server_id = 2 
    log-bin= mysql-bin
    replicate-ignore-db=mysql 
    replicate-ignore-db=sys 
    replicate-ignore-db=information_schema 
    replicate-ignore-db=performance_schema
    read-only=0 
    relay_log=mysql-relay-bin 
    log-slave-updates=on 
    auto-increment-offset=2 
    auto-increment-increment=2
    
    
    # 重启mysql 服务
    service mysql restart 
    docker start mysql2
    docker exec -it mysql2 /bin/bash 
    mysql -uroot -p123456
    
    # 创建一个用户来同步数据
    GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
    
    # 设置主库链接,master_host即为容器IP,master_log_file和
    master_log_pos即为在mone容器中,通过show master status查出来
    的值;
    //change master to 
    master_host='172.17.0.2',master_user='slave',master_passwor d='123456',master_log_file='mysql- bin.000001',master_log_pos=443,master_port=3306;
    
    change master to master_host='159.89.85.150',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306;
    
    # 启动同步
    start slave ;
    # 查看状态
    show master status;
    
    
    # 查看容器IP:
    docker inspect mysql1 | grep IPA
    
    
    # 设置完成后,再次进入第一个服务器的容器
    docker exec -it mysql1 /bin/bash
    mysql -uroot -p123456
    
    # 设置mtwo主库链接,参数详细说明同上
    // change master to
    // master_host='172.17.0.3',master_user='slave',master_passwor d='123456',master_log_file='mysql-bin.000003',master_log_pos=443,master_port=3306;
    
    change master to
    master_host='157.245.134.29',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306;
    
    # 启动同步
    start slave;
    
    # 查看状态
    show slave statusG;
    
  • 相关阅读:
    [YNOI2017][bzoj4811][luogu3613] 由乃的OJ/睡觉困难综合症 [压位+树链剖分+线段树]
    [bzoj3270] 博物馆 [期望+高斯消元]
    [bzoj4372] 烁烁的游戏 [动态点分治+线段树+容斥原理]
    [Codeforces438E][bzoj3625] 小朋友和二叉树 [多项式求逆+多项式开根]
    [bzoj3813] 奇数国 [线段树+欧拉函数]
    [BZOJ4205][FJ2015集训] 卡牌配对 [建图+最大流]
    Git常见问题解决办法
    电脑常用快捷键
    egret.Shape渲染集合图形
    TypeScript语法学习--变量的声明
  • 原文地址:https://www.cnblogs.com/Dannier/p/MySql.html
Copyright © 2020-2023  润新知