• docker+MySQL+读写分离


    一、拉取mysql镜像文件
    docker pull mysql
    二、查看镜像
    docker images
    三、创建配置文件目录
    mkdir /data/docker/mysql/{master,slave} -pv

    四、主从配置文件
    主:/data/docker/mysql/master/my.cnf
    [mysqld]
    server-id=1
    log-bin=master-bin
    log-bin-index=master-bin.index
    default-authentication-plugin=mysql_native_password
    从:/data/docker/mysql/slave/my.cnf
    [mysqld]
    server-id=2
    skip-slave-start=true
    read_only=ON
    relay-log=relay-bin
    relay-log-index=relay-bin.index
    default-authentication-plugin=mysql_native_password

    五、启动主从数据库的docker实例
    创建主库数据文件目录
    mkdir /data/docker/mysql/master/data
    启动主库实例
    docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master -v /data/docker/mysql/master/data:/var/lib/mysql -v /data/docker/mysql/master/my.cnf:/etc/my.cnf -p 3306:3306 mysql
    创建以后要到容器里面去修改密码:否则会报错,据说是MySQL的新特性:
    报错如下:
    ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
    进入容器
    docker exec -it mysql-master /bin/bash
    登录MySQL
    mysql -uroot -p123456 -h127.0.0.1
    修改密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'fansik';


    创建从库数据文件目录
    mkdir /data/docker/mysql/slave/data
    启动从库实例
    docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave -v /data/docker/mysql/slave/data:/var/lib/mysql -v /data/docker/mysql/slave/my.cnf:/etc/my.cnf -p 3307:3306 mysql
    创建以后要到容器里面去修改密码:否则会报错,据说是MySQL的新特性:
    报错如下:
    ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
    进入容器
    docker exec -it mysql-slave /bin/bash
    登录从MySQL
    mysql -uroot -p123456 -h127.0.0.1 -P3307
    修改密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'fansik';

    六、配置主从复制
    查看两个容器的ip地址
    主库:
    [root@10-17-16-106 data]# docker inspect 07 |grep 'IPAddress'
    "SecondaryIPAddresses": null,
    "IPAddress": "172.17.0.2",
    "IPAddress": "172.17.0.2",

    从库:
    [root@10-17-16-106 data]# docker inspect 72 |grep 'IPAddress'
    "SecondaryIPAddresses": null,
    "IPAddress": "172.17.0.3",
    "IPAddress": "172.17.0.3",

    1、登录主库添加复制账号
    MySQL [(none)]> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
    Query OK, 0 rows affected (0.09 sec)

    MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
    Query OK, 0 rows affected (0.01 sec)

    MySQL [(none)]> flush privileges;
    Query OK, 0 rows affected (0.01 sec)

    2、查看主库状态
    MySQL [(none)]> show master status;
    +-------------------+----------+--------------+------------------+-------------------+
    | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-------------------+----------+--------------+------------------+-------------------+
    | master-bin.000004 | 1363     |              |                  |                   |
    +-------------------+----------+--------------+------------------+-------------------+

    3、配置从库复制信息
    change master to master_host='172.17.0.2',master_user='slave',master_password='slave',master_log_file='master-bin.000004',master_log_pos=1363,master_port=3306;

    读写分离配置,使用中间件为amoeba
    参考文档:http://www.cnblogs.com/fansik/p/7168501.html

  • 相关阅读:
    【HDU2222】Keywords Search(AC自动机)
    -网络流题表
    【 POJ
    【 UVALive
    【POJ2699】The Maximum Number of Strong Kings(网络流)
    【UVALive
    【HDU3081】Marriage Match II (二分+最大流)
    【UVALive
    【LA2796】Concert Hall Scheduling(最大费用最大流)
    【 UVALive
  • 原文地址:https://www.cnblogs.com/fansik/p/9335838.html
Copyright © 2020-2023  润新知