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

Docker配置mysql主库从库

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

Docker配置mysql主库从库

1.1 搭建环境 Centos 7 64位
  • MySQL 5.7.13
  • Docker 1.13.1
  • 接下来,我们将会在一台服务器上安装docker,并使用docker运行三个MySQL容器,分别为一主两从。
1.2 安装docker
  • 执行命令:yum install docker
  • 如果有提示,一路y下去
  • 安装成功后,查看版本:docker version
1.3 启动docker
  • systemctl start docker.service #启动服务
1.4 安装MySQL

docker pull mysql:5.7.13

1.5 运行主容器master
docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13
  • –name 为容器指定名称,这里是master
  • -p 将容器的指定端口映射到主机的指定端口,这里是将容器的3306端口映射到主机的3306端口
  • -e 设置环境变量,这里是指定root账号的密码为123456
  • -d 后台运行容器,并返回容器ID
  • mysql:5.7.13 指定运行的mysql版本
1.6 检验是否启动成功
  • docker ps -a 显示所有的容器,包括未运行的
  • 开放3306端口
  • firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • firewall-cmd --reload
  • 使用Navicat连接测试
1.7 创建主容器的复制账号

使用Navicat图像化界面执行SQL

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

出现如下信息表示授权成功

1.8 修改MySQL配置环境
  • 创建配置文件目录

  • 目录结构如下

  • /usr/mysql/master

  • /usr/mysql/slave1

  • /usr/mysql/slave2

  • 拷贝一份MySQL配置文件

docker cp master:/etc/mysql/my.cnf /usr/mysql/master/my.cnf
  • 修改my.cnf,在 [mysqld] 节点最后加上后保存
    log-bin=mysql-bin
    server-id=1
  • 将修改后的文件覆盖Docker中MySQL中的配置文件
docker cp /usr/mysql/master/my.cnf master:/etc/mysql/my.cnf
  • 重启 mysql 的docker , 让配置生效
  • docker restart master
1.9 运行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
  • 拷贝一份MySQL配置文件
    docker cp slave1:/etc/mysql/my.cnf /usr/mysql/slave1/my.cnf
  • 修改my.cnf,在 [mysqld] 节点最后加上后保存
    log-bin=mysql-bin
    server-id=2
  • 将修改后的文件覆盖Docker中MySQL中的配置文件
docker cp /usr/mysql/slave1/my.cnf slave1:/etc/mysql/my.cnf
  • 重启 mysql 的docker , 让配置生效
  • docker restart slave1
1.10 配置主从复制

使用Navicat连接slave1后新建查询,执行以下SQL

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

MASTER_HOST 填Navicat连接配置中的ip应该就可以

MASTER_PORT 主容器的端口

MASTER_USER 同步账号的用户名

MASTER_PASSWORD 同步账号的密码

1.11 检查是否配置成功
show slave status;

  • 如果都是Yes,那么恭喜你,可以测试主从复制的效果了,如果有一个不是Yes,一半是重启从容器后,事务回滚引起的,那么给出解决方法如下
stop slave ;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave ;
1.12运行MySQL从容器slave2与slave1同理
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323463.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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