docker搭建mysql集群

要求:一台装有centos7.6以上的服务器,docker安装完毕

该方法是基于dockers搭建的mysql的主从集群,一主一从

拉取mysql的镜像

docker pull mysql:8.0.25
在这里插入图片描述

启动容器,以该镜像启动2个容器

1.主库的容器
docker run -p 3307:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.25
2.从库的容器
docker run -p 3308:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.25
3.使用docker ps -a检查容器是否启动成功
docker搭建mysql集群_第1张图片

进入到主库和从库的容器中修改对应的数据

1.主库
docker exec -it mysql-master /bin/bash 进入到容器
echo -e "[mysqld]\nserver-id=100\nlog-bin=mysql-bin" >> etc/mysql/my.cnf 修改配置文件
service mysql restart 重启服务
2.从库
docker exec -it mysql-slave /bin/bash 进入到容器
echo -e "[mysqld]\nserver-id=101\nlog-bin=mysql-bin" >> etc/mysql/my.cnf 修改配置文件
service mysql restart 重启服务
3.因为服务重启之后退出容器会关闭,所以需要重启这两个容器
docker restart mysql-master
docker restart mysql-slave

开启数据库主从复制

1.进入到主库中,连接上mysql,创建一个便于从库登陆的用户
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
2.重置偏移量
reset master;
3.进入到从库中,连接主库
ip可以用docker inspect 容器名称/容器id获取

change master to master_host='172.17.0.2',
master_user='slave',
master_password='123456',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos= 0,
master_connect_retry=30;

4.启动主从
start slave;
5.查看主从
show slave status;
注意Slave_IO_Running和Slave_SQL_Running都是yes的时候,主从集群搭建成功
docker搭建mysql集群_第2张图片

你可能感兴趣的:(docker,mysql)