zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    webpack入坑之旅(五)加载vue单文件组件
    webpack入坑之旅(四)扬帆起航
    webpack入坑之旅(三)webpack.config入门
    webpack入坑之旅(二)loader入门
    模块的总结
    项目中的bug
    详解懒汉模式和饿汉模式以及他们的改进
    感悟(岁月)
    浅谈js中的this的用法
    图解http协议(一章了解web及其网络基础h)
  • 原文地址:https://www.cnblogs.com/Dannier/p/MySql.html
Copyright © 2011-2022 走看看