栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

如何在docker中搭建mysql一主多从

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在docker中搭建mysql一主多从

1 安装docker

执行命令

yum install docker

  此处按y即可

 

 输入该命令查看是否下载成功

 docker version

  显示版本号及说明docker下载成功

1.2 启动Docker
systemctl  start docker.service #启动服务
1.3 安装MySQL
docker search mysql:从远程仓库搜索mysql软件

使用Docker拉取MySQL镜像

docker pull mysql:5.7.13
1.4 设置mysql主容器master
docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13
1.6 检验是否启动成功
docker ps -a   查看已经创建的容器
如图上容器名为master
docker start 容器名字  启动mysql主容器

  开放3306端口 

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

  去软件中连接主机mysql 

输入sql语句复制用户

 

 这个为sql语句

GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by 'backup';
show grants for 'backup'@'%';

 当显示如下图时则表示授权成功! 

1.7 创建主容器的复制账号

创建一主两从的文件夹便于修改文件

  /usr/local/mysql/master

  /usr/local/mysql/slave1

  /usr/local/mysql/slave2

  结构如上

使用touch命令创建文件夹

 拷贝文件到新创的文件之中

docker cp master:/etc/mysql/my.cnf /usr/mysql/master/my.cnf

 进到master目录下,修改my.cnf

修改my.cnf,在 [mysqld] 节点最后加上后保存

log-bin=mysql-bin
server-id=1

再覆盖之前的my.cnf文件 

docker cp /usr/mysql/master/my.cnf master:/etc/mysql/my.cnf

 重启 mysql 的docker , 让配置生效

docker restart master
1.8 运行MySQL从容器slave1

  首先运行从容器slave1

docker run --name slave1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13

 开放3307端口

firewall-cmd --zone=public --add-port=3307/tcp --permanent
firewall-cmd --reload

  拷贝文件到新创的文件之中

docker cp slave1:/etc/mysql/my.cnf /usr/mysql/slave1/my.cnf

 进到master目录下,修改my.cnf

修改my.cnf,在 [mysqld] 节点最后加上后保存

log-bin=mysql-bin
server-id=2

再覆盖之前的my.cnf文件 

docker cp /usr/mysql/slave1/my.cnf slave1:/etc/mysql/my.cnf

 重启 mysql 的docker , 让配置生效

docker restart slave1
1.9 运行MySQL从容器slave2

   首先运行从容器slave1

docker run --name slave2 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.13

  开放3307端口

firewall-cmd --zone=public --add-port=3308/tcp --permanent
firewall-cmd --reload

  拷贝文件到新创的文件之中

docker cp slave2:/etc/mysql/my.cnf /usr/mysql/slave2/my.cnf

 进到master目录下,修改my.cnf

修改my.cnf,在 [mysqld] 节点最后加上后保存

log-bin=mysql-bin
server-id=3

  再覆盖之前的my.cnf文件 

docker cp /usr/mysql/slave2/my.cnf slave2:/etc/mysql/my.cnf

  重启 mysql 的docker , 让配置生效

docker restart slave2
1.10 配置主从复制

连接三个数据库

在两个从服务器中输入

CHANGE MASTER TO 
MASTER_HOST='192.168.200.130',
MASTER_PORT=3306,
MASTER_USER='backup',
MASTER_PASSWORD='backup';

测试是否配置成功

show slave status;

成功后显示如图

 如果失败则输入该命令

stop slave ;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave ;

再次输入show slave status查看数据是否正确,如果正确则可以开始测试mysql一主多重是否搭建成功

1.11 测试主从复制

首先在主mysql数据库中建立一个新的数据库

 然后打开其他两个从机刷新后看数据是否同步

最后在数据库中添加表和数据刷新后看数据是否同步如果 同步则表示搭建成功

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/299810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号