基于docker 容器搭建mysql 主从
1. 下载docker 镜像,这里不在详细描述
2.创建临时镜像,并且做好文件映射,拷贝好配置
在此处创建临时文件夹app ,用来做映射,容器启动之后使用docker exec -it 容器id /bin/bash 进入bash,将/etc/mysql/下文件拷贝到app文件夹中,由于容器内 的app 文件夹和外部app 文件夹做了映射,所以外部文件夹也会出现拷贝后的相应文件。
3.删除临时镜像文件,创建我们的第一个master1 节点
docker run --privileged=true --name master1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /mydata/mysql/master1/conf.d:/etc/mysql/conf.d -v /mydata/mysql/master1/my.cnf:/etc/mysql/my.cnf -d mysql:5.7
复制代码
创建第一个master 节点成功后,接着创建其他节点。
4.修改配置文件
1. 首先是master 节点文件
如果不放心,可以重启主节点后可以进入容器看看是否映射成功
2.slave节点
2.1 创建节点
— link: 容器内连接master1 节点:别名master 。 如果不加这个参数,那么同一个docker network之间两个容器是无法通信的
docker run --privileged=true --name slave1 --link master1:master -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -v /mydata/mysql/slave1/conf.d:/etc/mysql/conf.d -v /mydata/mysql/slave1/my.cnf:/etc/mysql/my.cnf -d mysql:5.7
复制代码
2.2 修改配置文件
启动后修改server—id,记得不要和主节点相同 ,开启二进制日志(复制粘贴过来修改一下server-id 就行),这里不做其他描述.
2.3 指定slvae 上的master 同步信息
>master_log_file :指定同步使用的二进制文件名称,这个名称可以在主节点上查看。
master_log_pos :二进制日志同步开始的位置。
复制代码
3. 测试主从是否搭建成功
- 在主节点上新建mall数据库,并且新建一个usr 表
- 切换到从库查看,从库中也出现了对应的数据库和表,可以进行下一波尝试。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END