简介

本文主要介绍如何使用docker快速搭建实验环境,熟悉mysql主从复制配置。

环境

  • docker 17.12.1-ce
  • docker-compose 1.19.0

docker-compose.yml

  • 一个主数据库
  • 一个从数据库
  • 主从直连
version: '2'
services:
    database-master:
        build:
            context: ./
            dockerfile: deploy/master.docker
        environment:
            - "MYSQL_ROOT_PASSWORD=pass"
            - "MYSQL_DATABASE=test_db"
        links:
            - database-slave
        ports:
            - "33065:3306"
    database-slave:
        build:
            context: ./
            dockerfile: deploy/slave.docker
        environment:
            - "MYSQL_ROOT_PASSWORD=pass"
            - "MYSQL_DATABASE=test_db"
        ports:
            - "33066:3306"

主数据库配置

  • master.docker
FROM mysql:5.6

ADD ./deploy/master_my.cnf /etc/mysql/my.cnf
  • master_my.cnf追加下面内容
[mysqld]
# 开启mysql-bin
log-bin=mysql-bin
# 设置server id
server-id=1

从数据库设置

  • slave.docker
FROM mysql:5.6

ADD ./deploy/slave_my.cnf /etc/mysql/my.cnf
  • slave_my.cnf
[mysqld]
# 设置server id
server-id=2

启动实验环境

进入docker-compose.yml所在目录执行下面命令
sudo docker-compose up -d

查看master数据库状态

show master status;

查看slave数据库状态

show slave status;

从数据库配置主数据库信息

CHANGE MASTER TO
    MASTER_HOST='database-master',
    MASTER_USER='root',
    MASTER_PASSWORD='pass',
    MASTER_LOG_FILE='mysql-bin.000004',
    MASTER_LOG_POS=120;

# mysql-bin.000004, 120 由show master status;显示信息中获取

同步开始与结束

start slave;
stop slave;

测试sql

  • 创建一张表
CREATE TABLE sample(
  id INT(11) NOT NULL AUTO_INCREMENT,
  value INT(5) NOT NULL DEFAULT 0,
  PRIMARY KEY (id)
);
  • 主数据库插入数据
INSERT INTO sample(value)
VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
  • 从数据库查看
SELECT * FROM test_db.sample;


查看原文: https://www.huuinn.com/archives/598
更多技术干货: 风匀坊
关注公众号:风匀坊

更多相关文章

  1. C# 往SQL数据库插入listbox的值
  2. C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新
  3. [置顶] Android数据库框架GreenDao封装使用,易理解、易扩
  4. Android原生Contacts——界面和数据库
  5. [Android]如何导入已有的外部数据库
  6. Java操作数据库之jdbc【原生方式】
  7. Android复习练习十二(自定义ContentProvider实现其他应用操作本
  8. 实现基于注解(Annotation)的数据库框架(一)反射的基本了解
  9. 无法从Android中的Asset文件夹复制数据库

随机推荐

  1. Android Studio使用问题解决
  2. Android 资源文件中的符号含义与说明
  3. 从J2EE转向Android的第四天-----Android
  4. 关于android各种双卡手机获取imei,imsi的
  5. android加速度感应
  6. android点击状态分析
  7. Android Studio 提示错误:No IDEA annotat
  8. Spinner弹出位置变化
  9. Android中UI线程与后台线程交互设计的5种
  10. Android 版本分布数据:Android 2.3 估超过