前言
现在容器技术越来越普及,随着 Docker, Kubernetes 不断发展,云原生的概念十分火热。掌握一些容器知识,会基于 Docker,Kubernetes 环境进行服务端开发对后端开发者也成了必不可少的一部分。本文主要描述如何使用 Docker 技术快速搭建一个 MySQL 主从架构。
环境准备
CentOS 7
Docker 18.09.0
MySQL 5.7
环境搭建
1. 使用 Docker 搜索 MySQL 镜像,并且拉取 MySQL 5.7 版本。
docker search mysql
docker pull mysql:5.7
2. 首先新建一个文件夹 master 里面存放 MySQL 主节点的配置文件 my.cnf。
mkdir master && vi ./master/my.cnf
开启 bin log 和指定 server-id
[mysqld]
## 开启二进制日志功能
log-bin = mysql-bin
## 设置server_id,一般设置为IP,注意要唯一
server-id = 3310
3. Docker 运行 MySQL 镜像
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name master -v $PWD/master:/etc/mysql/conf.d -p 3310:3306 mysql:5.7
运行成功后使用 docker ps mysql
查看 MySQL 实例运行状态
4. Docker 方式连接 MySQL
docker exec -it master bash
mysql -uroot -p
5. 检查 主节点 MySQL 的 master 状态和 bin log 开启情况
6. 同样方式搭建从节点 MySQL 实例
mkdir slave && vi ./slave/my.cnf
7. Docker 方式运行从节点 MySQL 实例
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name slave -v $PWD/slave:/etc/mysql/conf.d -p 3311:3306 mysql:5.7
8. 进入从节点 MySQL 实例关联主节点 MySQL 实例
change master to master_host='localhost', master_user='root', master_password='123456', master_port=3310, master_log_file='mysql-bin.000003', master_log_pos=154, master_connect_retry=60;
9. 从节点 MySQL 开启同步,并且查看同步状态
start slave
show slave status
当 SlaveIORunning 和 SlaveSQLRunning 都是 Yes 了,表明同步开启成功,接下来就是验证了.
结果验证
10. 首先连接进入主节点 MySQL 实例,并且创建数据库 test
docker exec -it master bash
mysql -uroot -p123456
create database test;
11. 连接进入从节点 MySQL 实例,查看当前数据库
docker exec -it slave bash
mysql -uroot -p123456
show databases;
可以从图中看到此刻主节点新增数据库的操作也同步到从节点上了。
到这里, Docker 方式的 MySQL 主从搭建就算完成了,希望对你有所帮助。
往期推荐
Java 14 Hotspot 虚拟机垃圾回收调优指南!
AI 换脸或受《民法典》人格权编严监管
Lombok 的爱恨情仇
13个Mongodb GUI可视化管理工具,总有一款适合你
Nacos 1.3.0 发布,一个修炼内功的版本:全新内核构建!
推荐关注本文作者的原创号 闻人的技术博客