前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyCat05——基于Docker搭建MySQL主从复制

MyCat05——基于Docker搭建MySQL主从复制

原创
作者头像
用户8100582
发布2023-11-22 22:07:09
3160
发布2023-11-22 22:07:09
举报
文章被收录于专栏:Java多线程Java多线程

1 安装mysql的镜像

如果服务器较少,为了充分发挥现有服务器的利用率,可以使用容器化技术来安装mysql。

如果服务器没有docker,需要先安装docker

yum install -y docker

docker安装后,启动服务

service docker start

下载mysql 5.7 版本的docker镜像

docker pull mysql:5.7

2 启动mysql服务

启动主节点的mysql服务

--name 指定容器名

-p 指定端口,作为数据库3306 的映射端口

-e 设置环境变量,在这里为数据库root指定密码

-d 在后台运行容器

docker run --name master -p 3366:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

启动从节点的mysql服务

docker run --name slave -p 3377:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

通过命令 docker ps 可以查看到当前两个节点的 mysql 服务都已启动。

3 主从配置

3.1 修改主节点配置

进入到容器内部

docker exec -it master /bin/bash

进入容器后,因为要修改配置文件内容,而容器中默认没有 vim 编辑器,需要手动进行安装,在容器中可以直接执行

yum install -y vim

修改配置文件,有些地方的配置文件可能位置不同,猜测可能是因为容器的版本不同。

vim /etc/my.cnf

在[mysqld]下增加以下两项配置

log-bin=bin_logserver-id=1

修改完成并保存。

然后退出容器,并使用 docker 指令重启容器。

docker restart master

3.2 修改从节点配置

进入容器内部

docker exec -it slave /bin/bash

安装vim编辑器,与master部分相同,因为是来自同一个镜像包,所以默认也没有该编辑器。

yum install -y vim

修改配置文件

vim /etc/my.cnf

在mysqld下增加以下两项配置,这里的 server-id 和 master 必须不同。

log-bin=bin_logserver-id=2

修改完成并保存。

然后退出容器,并使用 docker 指令重启容器。

docker restart slave

4 创建主从复制

4.1 查看主节点IP地址

通过 docker inspect 指令查看 master 节点的IP地址

docker inspect master

4.2 主节点配置

进入到主节点mysql命令行,创建用于同步binlog文件的用户并分配权限

进入容器

docker exec -it master /bin/bash

进入mysql命令行

mysql -uroot -p123456

创建同步binlog的用户,并分配权限

grant replication slave on *.* to 'slave_user'@'%' identified by '123456';

查看主节点binlog信息

show master status;

4.3 从节点配置

进入容器

docker exec -it slave /bin/bash

进入mysql

mysql -uroot -p123456

使用4.1得到的master节点IP地址,及4.2中得到的master节点binlog信息,在从节点中进行同步设置

change master to master_host='172.17.0.2',master_user='slave_user',master_password='123456',master_log_file='bin_log.000001',master_log_pos=443;

启动主从复制

start slave;

查看从节点主从复制的状态

show slave status \G;

可以看到主从复制机制已经建立成功。

5 验证主从复制

在主节点创建数据库、数据表,并插入一条记录

在从节点中查询该条记录

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 安装mysql的镜像
  • 2 启动mysql服务
  • 3 主从配置
  • 3.1 修改主节点配置
  • 3.2 修改从节点配置
  • 4 创建主从复制
    • 4.1 查看主节点IP地址
      • 4.2 主节点配置
        • 4.3 从节点配置
        • 5 验证主从复制
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档