如何在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=123456 -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数据库中建立一个新的数据库

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

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

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值