docker安装mysql并设置主从
1.centos7安装docker
查看CentOS版本
lsb_release -a
- 1

确保yum为最新的版本,如果登录的账号不是root用户,那么可能需要输入密码
sudo yum update
- 1
查看是否已经安装了docker
yum list installed | grep docker
- 1
安装docker
yum -y install docker
- 1
-y代表不询问进行安装
安装完毕后启动docker
systemctl start docker
- 1
查看docker启动状态
systemctl status docker
- 1

至此,docker安装结束
设置docker开机启动
systemctl enable docker.service
- 1
2.使用docker安装mysql
使用阿里云镜像加速器下载镜像
登录阿里云-容器镜像服务-镜像中心-镜像加速器

此处阿里云提供了详细的操作方法,这样以后下载镜像的时候可以默认使用加速器,除此之外,还可以创建镜像仓库,拉取镜像的时候可以填写自己的镜像地址来进行拉取,也可以起到加速效果
创建mysql外部映射文件
在开始创建mysql容器之前,我们最好先把mysql的配置映射文件创建好,这样容器启动之后可以直接在宿主机中修改配置,而不需要进入到容器内部来修改配置了
# mysql主机data文件存放地址
mkdir -p /etc/docker/mysql/data/master
# mysql从机data文件存放地址
mkdir -p /etc/docker/mysql/data/master
# mysql主机配置文件存放地址
mkdir -p /etc/docker/mysql/master
# mysql从机配置文件存放地址
mkdir -p /etc/docker/mysql/master

创建完成之后,修改mysql配置,开启binlog并设置节点编号
# 进入到mysql主机配置文件存放地
cd /etc/docker/mysql/master
# 创建配置文件
vi my.cnf
# 进入编辑模式,修改配置
[mysqld]
log-bin = mysql-bin
server-id = 999
- 以上:
log-bin = mysql-bin 开启binlog
server-id = 999 节点编号,主从节点的编号不允许重复,数字可以随意设置
同样的操作,修改mysql从机的配置
# 进入到mysql从机配置文件存放地
cd /etc/docker/mysql/slave
# 创建配置文件
vi my.cnf
# 进入编辑模式,修改配置
[mysqld]
log-bin = mysql-bin
server-id = 1
修改完成之后就可以准备创建mysql容器了
创建mysql主从容器
# 创建master容器
docker create --name master
-v /etc/docker/mysql/data/master:/var/lib/mysql
-v /etc/docker/mysql/master:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7
# 启动master容器
docker start master
# 创建slave容器
docker create --name slave
-v /etc/docker/mysql/data/slave:/var/lib/mysql
-v /etc/docker/mysql/slave:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=root -p 3307:3306 mysql:5.7
# 启动slave容器
docker start slave
- 启动完成后,可以使用docker ps查看容器的启动情况

说明容器启动完毕,进入容器查看master节点状态
# 进入容器
docker exec -it master /bin/bash

# 链接mysql
mysql -uroot -p
# 指定ip
mysql>GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.99.100' IDENTIFIED BY 'mysql';
# 所有ip
mysql>GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by 'mysql';
- 然后查看主容器数据库状态
mysql> show master status;

记录一下这里的File和Position,在后面配置从机的时候需要用到
接着退出容器,或者新开一个链接窗口使用docker ps查看运行容器,然后使用
# 查看容器ip地址
docker inspect 容器id | grep IPAddress

同样记录下主机的ip地址,在后面配置中需要用到
配置mysql从机
进入到从机容器中
docker exec -it slave /bin/bash
- 1
# 配置链接的主机参数
mysql>change master to master_host='172.17.0.5',master_user='root',master_password='aabbccdd',master_port=3306,master_log_file='mysql-bin.000004',master_log_pos=52215703,master_connect_retry=30;
# master_host:主机的ip
# master_user:主机用户名
# master_log_file:记录的File地址
# master_log_pos:记录的postion地址
# master_port:主机的端口
# master_password:主机的登录密码
- # 启动slave
mysql> start slave;
# 查看主从链接状态
mysql> show slave status;

此时看到两个YES,说明配置完成
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END










暂无评论内容