广告
返回顶部
首页 > 资讯 > 数据库 >使用docker-compose搭建mysql主从
  • 214
分享到

使用docker-compose搭建mysql主从

dockermysqljava数据库微服务 2023-09-26 21:09:26 214人浏览 八月长安
摘要

目录 一、docker-compose和主从的简介 1、docker-compose 2、mysql主从 3、为什么要使用docke-compose? 二、部署mysql主从集群 1、mysql-master主库 2、mysql-slave

目录

一、docker-compose和主从的简介

1、docker-compose

2、mysql主从

3、为什么要使用docke-compose?

二、部署mysql主从集群

1、mysql-master主库

2、mysql-slave从库

三、安装docker-compose

1、上传文件

2、添加可执行权限

3、创建并编辑docker-compose.yml文件

4、运行docker-composeysql.yml

四、配置mysql主从

1、进入主库容器配置远程连接

2、登录mysql主服务器

3、查看主节点关键参数

4、给用户授权并更新

5、进入从服务器

6、登录mysql从服务器

7、配置主从复制

8、开启主从复制

9、查看连接状态

五、测试主从服务

1、在主服务器创建一个数据库

2、在从服务器查看数据库

六、将crm项目的数据库通过命令导入主库

1、创建数据库crm

2、把sql脚本上传到主服务器的的数据目录

3、选择数据库

4、设置数据库编码(可选) 

5、导入数据(注意sql文件的路径)

好啦 文章内容到这里就结束了  你学到了吗  

觉得有用的记得关注点赞加收藏哦  我的Docker专栏还有其他关于Dokcer的技术点哦~


一、Docker-compose和主从的简介

1、docker-compose

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排 通过编写docker-compose文件可对多个服务同时进行启动/停止/更新(可定义依赖,按顺序启动服务)

2、Mysql主从

以往创建的集群都是做同样的事情,比如说创建了三台服务器,那么客户端发送了一条增加请求,那么就会随机分配到三台服务器其中一台,

那么mysql集群不一样,首先呢我们不叫它mysql集群,我们叫mysql主从,那么就有主服务器和从服务器这样两种概念,主服务器负责写的操作,也就是增删改,从服务器负责读的操作,也就是查询,如果说客户端发送了一条增加的请求,那么就会把这条增加的请求给到主服务器,再由主服务器把数据同步到从服务器

3、为什么要使用docke-compose?

微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多 个实例,如果每个微服务都要手动启停, 那么效率之低,维护量之大可想而知.而使用 Docker Compose 可以轻松、高效的管理容器, 它是一个用于定义和运行多容器 Docker 的应用程序工具,可以用来一键启动所有服务器,一键关闭所有服务器,一键删除所有服务器,非常方便。

部署mysql主从集群

1、mysql-master主库

在宿主机中创建相关目录,用于挂载容器的相关数据

mkdir -p /data/mysql-master/{conf,data}

上传主数据库容器的配置文件my.cnf到/data/mysql-master/conf目录下

cd /data/mysql-master/conf

rz 上传

文章所需要的文件我会放到结尾

2、mysql-slave从库

 在宿主机中创建相关目录,用于挂载容器的相关数据

mkdir -p /data/mysql-slave/{conf,data}

 上传从数据库容器的配置文件my.cnf到/data/mysql-slave/conf目录下

cd /data/mysql-slave/conf

rz 上传

这两个文件里的内容只有id是不一样的

、安装docker-compose

1、上传文件

安装包刚下载过来是docker-compose-Linux-x86_64

需要将docker-compose-linux-x86_64重命名为 docker-compose
将 docker-compose 文件上传到虚拟机 的 /usr/local/bin/ 目录下,这个目录下的文件可以被全局使用到,

cd /usr/ocal/bin

2、添加可执行权限

chmod +x /usr/local/bin/docker-compose

3、创建并编辑docker-compose.yml文件

可以使用默认的名称docker-compose.yml,因为要做MySQL的主从所以我把名字改成了docker-composemysql.yml

我们编辑yml文件可以在外部的工具先编辑在上传,比如idea

 docker-composemysql.yml内容如下:

# 版本号version: '3'# 定义服务services:  # 服务名  mysql-master:    # 容器名称    container_name: mysql-master    # 镜像    image: mysql/mysql-server:5.7    # 重启    restart: always    # 提供伪终端    tty: true    # root具备管理员权限    privileged: true    # 环境变量    environment:      MYSQL_ROOT_PASSWord: 123456    # 数据卷(目录映射)    volumes:      - /data/mysql-master/conf/my.cnf:/etc/my.cnf      - /data/mysql-master/data:/var/lib/mysql    # 网络    networks:      mynetwork:        ipv4_address: 172.19.0.3  # 服务名  mysql-slave:    # 容器名称    container_name: mysql-slave    # 镜像    image: mysql/mysql-server:5.7    # 重启    restart: always    # 提供伪终端    tty: true    # root具备管理员权限    privileged: true    # 环境变量    environment:      MYSQL_ROOT_PASSWORD: 123456    # 数据卷(目录映射)    volumes:      - /data/mysql-slave/conf/my.cnf:/etc/my.cnf      - /data/mysql-slave/data:/var/lib/mysql    # 网络    networks:      mynetwork:        ipv4_address: 172.19.0.4# 定义所需要的网络networks:  mynetwork:    driver: bridge    ipam:      config:        - subnet: 172.19.0.0/16

创建文件夹mysql把编辑号的yml文件上传进去

mkdir mysql

4、运行docker-composeysql.yml

检查

docker-compose -f docker-composemysql.yml config -q
检查一下yml文件有没有错误的地方,没报错就是没有

运行

 docker-compose -f docker-composemysql.yml up -d

配置mysql主从

1、进入主库容器配置远程连接

 docker exec -it mysql-master /bin/sh

 

2、登录mysql主服务器

mysql -u root -p

输入mysql密码:123456  

3、查看主节点关键参数

记住 File 的值和 Position 的值(此值重启后会变化),等会配置 slave 服务器的时候要用

 show master status;

 

4、给用户授权并更新

    grant all privileges on *.* to root@'%' identified by '123456';
    flush privileges;

另外开一个窗口进入从服务器

5、进入从服务器

docker exec -it mysql-slave /bin/bash

6、登录mysql从服务器

mysql -u root -p

输入mysql密码:123456  

7、配置主从复制

CHANGE MASTER TO MASTER_HOST='172.19.0.3', MASTER_PORT=3306, MASTER_USER='root',
MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=154;

各参数说明:
master_host='172.19.0.3' // 这里填master主机ip,除了填写住宿主机IP,还可以填写bridge网络中的IP
master_log_file='mysql-bin.000005', // 这里填写 File 的值就是前面我们show master status;命令的执行结果
master_log_pos=154;// 这里填写 Position 的值就是前面我们show master status;命令的执行结果

8、开启主从复制

start slave;

9、查看连接状态

show slave status\G

注1:这里只要看到两个参数Slave_IO_Running和Slave_SQL_Running都为true,则表示复制是正常进行的,到这里我们的主从结构也就搭建完成了
注2:集群成功后,在mysql-master容器重启后虽然File的值和Position的值会变化,但在mysql-slave可以进行跟踪,所以不需要重新进行配置

五、测试主从服务

1、在主服务器创建一个数据库

create databse test;

在使用 show databases;查看一下所以库

2、在从服务器查看数据库

show databases;

 

ok,已经完成了数据的同步

六、将crm项目的数据库通过命令导入主库

在主服务器执行

1、创建数据库crm

create database crm;

2、把sql脚本上传到主服务器的的数据目录

 cd /data/mysql-master/data

文章所需要的文件我会放到结尾

3、选择数据库

use crm;

4、设置数据库编码(可选) 

set names utf8;

5、导入数据(注意sql文件的路径)

 source /var/lib/mysql/crm.sql;

已提前将crm.sql文件上传到了宿主机/data/mysql-master/data目录

 使用show tables;查看刚刚导入的数据

         

 在从数据库也查询一下,也是有数据的,完成了数据同步

        


好啦 文章内容到这里就结束了  你学到了吗  

觉得有用的记得关注点赞加收藏哦  我的Docker专栏还有其他关于Dokcer的技术点哦~

我敲BUG的Docker专栏:http://t.csdn.cn/ypXDz

  

来源地址:https://blog.csdn.net/qq_58804301/article/details/130061985

您可能感兴趣的文档:

--结束END--

本文标题: 使用docker-compose搭建mysql主从

本文链接: https://www.lsjlt.com/news/418960.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用docker-compose搭建mysql主从
    目录 一、docker-compose和主从的简介 1、docker-compose 2、mysql主从 3、为什么要使用docke-compose? 二、部署mysql主从集群 1、mysql-master主库 2、mysql-slave...
    99+
    2023-09-26
    docker mysql java 数据库 微服务
  • Docker搭建Mysql主从复制
    Docker搭建Mysql主从复制 前言 相信我,看完这一篇,mysql主从复制能遇到的错误在我这里都遇到了,docker能遇到的错误在我这里也遇到了,包括centos的错误,看吧,都是成长 do...
    99+
    2023-09-24
    docker mysql 容器 Linux
  • docker-compose如何搭建mongodb、mysql
    这篇文章主要介绍了docker-compose如何搭建mongodb、mysql,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。下面看下docker-compose搭建mong...
    99+
    2023-06-25
  • docker-compose构建php运行环境(Nginx,mysql,redis+redis主从)
    在构建的前提下保证docker和docker-compose安装没问题 docker-compose.yml内容 version: "1.0.0"networks: #添加网络 web-net: driver: bridgese...
    99+
    2023-08-31
    docker php nginx
  • Mysql 主从搭建
                             Mysql  主...
    99+
    2022-10-18
  • Docker-Compose实现Mysql主从的示例代码
    目录1. 简介2. 部署流程3. master节点3.1 安装mysql4. slave节点5. 验证6. 可能遇到的问题7. 同步部分数据库实例或表1. 简介 通过使用docker...
    99+
    2022-11-13
  • docker创建MySQL镜像,搭建主从复制环境
    docker创建MySQL镜像,搭建主从复制环境 前言一、编写Dockerfile制作mysql镜像编写Dockerfile文件编写mysql_file文件:编写run.sh文件build M...
    99+
    2023-09-28
    centos linux docker
  • 使用Docker Compose搭建 Confluence的教程
    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: ...
    99+
    2022-11-12
  • 使用Docker搭建MySQL主从数据库的方法步骤
    目录1. 准备主服务器2. 准备从服务器3. 启动主从同步4. 实现主从同步5. 停止和重置很多人对主从数据库有一个误区,把多个mysql搭建在同一个服务器上,性能提升是不是很有限?这个理念是错误的,数据库的性能瓶颈主要...
    99+
    2023-01-11
    Docker搭建MySQL主从 Docker MySQL主从
  • 如何搭建基于Docker的MySQL主从复制
    下文主要给大家带来如何搭建基于Docker的MySQL主从复制,希望这些内容能够带给大家实际用处,这也是我编辑如何搭建基于Docker的MySQL主从复制这篇文章的主要目的。好了,废话不多说,大家直接看下文...
    99+
    2022-10-18
  • docker-compose搭建mongodb、mysql的详细过程
    下面看下docker-compose搭建mongodb、mysql的详细方法,内容如下所示: version: '3' services: mysqldbservice: ...
    99+
    2022-11-12
  • Docker compose搭建ELK服务基本使用
    目录概述docker-compose 基本使用最后概述 使用的是docker-compose方法安装elk组件,对这部分的内容进行一个知识上的补充,使用docker-compose...
    99+
    2023-03-23
    Docker compose搭建ELK Docker compose
  • 如何使用Docker Compose搭建部署ElasticSearch
    本篇内容主要讲解“如何使用Docker Compose搭建部署ElasticSearch”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Docker Compose搭建...
    99+
    2023-06-29
  • Docker compose搭建ELK服务怎么使用
    今天小编给大家分享一下Docker compose搭建ELK服务怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-05
  • 怎么使用docker compose搭建etcd集群
    本文小编为大家详细介绍“怎么使用docker compose搭建etcd集群”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用docker compose搭建etcd集群”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-02
  • Docker搭建MySQ主从复制原理
    目录简介使用Docker拉取MySQL镜像查看镜像启动MySQL主从容器配置Master配置Slave开启Master-Slave主从复制简介 通过docker学习主从复制可以节省资...
    99+
    2022-11-13
  • Mysql主从复制搭建
    1.mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是SQL线程。 主将更改操作记录到binlog里从将主的binlo...
    99+
    2020-09-28
    Mysql主从复制搭建
  • MYSQL主从环境搭建
    服务器:192.168.11.131 master192.168.11.132 slave服务器系统# cat /etc/redhat-release CentOS Linux release 7...
    99+
    2022-10-18
  • mysql主从搭建切换
    环境: 172.30.249.156 percona5.6.27 主机名:tr-mysql 跑着生产环境的应用的虚拟机 192.168.129.153 percona5...
    99+
    2022-10-18
  • MYSQL怎么搭建主从
    本篇内容主要讲解“MYSQL怎么搭建主从”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL怎么搭建主从”吧!1,在虚拟机上新建三个虚拟机,分别是vm4 &...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作