[超入门]使用docker做mysql主从复制实验
16lz
2021-01-22
简介
本文主要介绍如何使用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
更多技术干货: 风匀坊
关注公众号:风匀坊
更多相关文章
- C# 往SQL数据库插入listbox的值
- C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新
- [置顶] Android数据库框架GreenDao封装使用,易理解、易扩
- Android原生Contacts——界面和数据库
- [Android]如何导入已有的外部数据库
- Java操作数据库之jdbc【原生方式】
- Android复习练习十二(自定义ContentProvider实现其他应用操作本
- 实现基于注解(Annotation)的数据库框架(一)反射的基本了解
- 无法从Android中的Asset文件夹复制数据库