mysql笔记:25. docker环境中mysql主从复制、主主复制实操


Docker容器是现在的主流技术,容器提供了细粒度的系统隔离机制,每个容器都完全独立,其中包括了应用以及所有需要的系统依赖,可以把系统中每个服务放入容器,让各个服务都以容器的形式运行,这样就大大简化了系统的部署过程,更加便于维护。

一、准备工作

1. 安装配置Docker

各位看官根据自己的操作系统和喜好选择相应的Docker进行安装和配置。使用docker pull命令拉取mysql 8的镜像文件。

> docker pull mysql:8

2. 准备MySQL相关的配置和数据目录

本次演示以一主二从共三台服务器为例进行演示。在当前目录创建三个配置文件目录和三个数据目录:

> cd /Users/Tom/docker
> 
> mkdir mysqlconf
> mkdir mysqlconf/master
> mkdir mysqlconf/slave1
> mkdir mysqlconf/slave2
> 
> mkdir mysqldata
> mkdir mysqldata/master
> mkdir mysqldata/slave1
> mkdir mysqldata/slave2
> 
> tree -L 2
.
├── README.md
├── mysqlconf
│   ├── master
│   ├── slave1
│   └── slave2
└── mysqldata
    ├── master
    ├── slave1
    └── slave2

运行MySQL容器并从中拷贝MySQL配置文件到本地备用,配置文件目录:/etc/my.cnf

# 语法:
docker cp <containerId>:/path/to/file /path/on/host

# 示例:temp_mysql8是本次启动的MySQL容器名称
docker cp temp_mysql8:/etc/my.cnf .

拷贝配置文件到已创建的配置文件目录:

cp my.cnf mysqlconf/master/my.cnf
cp my.cnf mysqlconf/slave1/my.cnf
cp my.cnf mysqlconf/slave2/my.cnf

> tree -L 3
.
├── README.md
├── mysqlconf
│   ├── master
│   │   └── my.cnf
│   ├── slave1
│   │   └── my.cnf
│   └── slave2
│       └── my.cnf
└── mysqldata
    ├── master
    ├── slave1
    └── slave2

二、基于日志点的主从复制

1. 配置Master服务器

1.1 修改配置文件

编辑主服务器的MySQL配置文件mysqlconf/master/my.cnf,添加下列配置项:

[mysqld]
server-id=1
log-bin=mysql-binlog
binlog-do-db=your-database-name
default_authentication_plugin=mysql_native_password

1.2. 在docker中启动Master节点

docker run -P --name mysqlmaster \
    -v $PWD/mysqldata/master:/var/lib/mysql \
    -v $PWD/mysqlconf/master/my.cnf:/etc/my.cnf \
    -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8

参数含义说明:

  • -P:本机与容器的端口映射
  • --name:为容器指定一个名称mysqlmaster
  • MYSQL_ROOT_PASSWORD:指定MySQL中root用户的密码为123456
  • -d:指定容器运行方式为后台运行
    容器启动后登录MySQL并检查配置是否生效:
$> docker exec -it mysqlmaster bash
# mysql -uroot -p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值