新手小白学习docker第八弹------实现MySQL主从复制搭建

目录

  • 0 引言
  • 1 实操
    • 1.1 新建主服务器容器
    • 1.2 书写配置文件
    • 1.3 重启master实例
    • 1.4 进入mysql-master容器
      • master容器实例内创建数据同步用户
    • 1.5 新建从服务器容器
    • 1.6 书写配置文件
    • 1.7 重启slave实例
    • 1.8 查看主从同步状态
    • 1.9 进入mysql-slave容器
      • 1.9.1 配置主从复制
      • 1.9.2 查看主从同步状态
      • 1.9.3 开启主从同步
      • 1.9.4 查看是否同步
  • 2 主从复制测试
    • 2.1 主服务器容器操作
    • 2.2 从服务器容器查看
  • 3 后记

0 引言

本章咱们来实现一下MySQL的主从复制搭建叭~
为什么呢?
因为这样可以增强容错性
如果主服务器出现故障了,咱们的从服务器可以顶上啊!
说明我们也要时刻准备着plan B,这样才能万无一失!
本文的观看以及实操,
非常需要注意是在主服务器容器下执行命令还是从服务器容器下执行命令!
非常需要注意是在主服务器容器下执行命令还是从服务器容器下执行命令!
非常需要注意是在主服务器容器下执行命令还是从服务器容器下执行命令!

1 实操

1.1 新建主服务器容器

新建主服务器容器实例3307

docker run -p 3307:3306 --name mysql-master \
-v /mydata/mysql-master/log:/var/log/mysql \
-v /mydata/mysql-master/data:/var/lib/mysql \
-v /mydata/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

-p 端口映射
–name 运行的容器的名字
-v 容器数据卷,可以宿主机和容器相互共享文件
-d 后台启动
在这里插入图片描述

1.2 书写配置文件

进入/mydata/mysql-master/conf目录下新建my.cnf

cd /mydata/mysql-master/conf
vim my.cnf

在这里插入图片描述

在my.cnf中填入以下内容

[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=101 
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能
log-bin=mall-mysql-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

1.3 重启master实例

修改完配置后重启master实例
重启实例,配置文件才会生效,注意哟!

docker restart mysql-master

在这里插入图片描述
查看是否重启成功

docker ps

在这里插入图片描述

1.4 进入mysql-master容器

进入mysql-master容器

docker exec -it mysql-master /bin/bash
mysql -uroot -proot

在这里插入图片描述

master容器实例内创建数据同步用户

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

在这里插入图片描述

1.5 新建从服务器容器

新建从服务器容器实例3308

docker run -p 3308:3306 --name mysql-slave \
-v /mydata/mysql-slave/log:/var/log/mysql \
-v /mydata/mysql-slave/data:/var/lib/mysql \
-v /mydata/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

1.6 书写配置文件

进入/mydata/mysql-slave/conf目录下新建my.cnf

cd /mydata/mysql-slave/conf
vim my.cnf

在这里插入图片描述

[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=102
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062  
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin  
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1  
## slave设置为只读(具有super权限的用户除外)
read_only=1

1.7 重启slave实例

修改完配置后重启slave实例

docker restart mysql-slave
docker ps

在这里插入图片描述

1.8 查看主从同步状态

主数据库中查看主从同步状态

show master status;

在这里插入图片描述

1.9 进入mysql-slave容器

docker exec -it mysql-slave /bin/bash
mysql -uroot -proot

在这里插入图片描述

1.9.1 配置主从复制

从数据库中配置主从复制
查找本机IP

ifconfig

在这里插入图片描述

change master to master_host='192.168.91.132', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;

1.9.2 查看主从同步状态

从数据库中查看主从同步状态

show slave status \G;

在这里插入图片描述
在这里插入图片描述

1.9.3 开启主从同步

从数据库中开启主从同步

start slave;

在这里插入图片描述

1.9.4 查看是否同步

查看从数据库状态发现已经同步

show slave status \G;

在这里插入图片描述

2 主从复制测试

2.1 主服务器容器操作

主机新建库-使用库-新建表-插入数据

SHOW DATABASES;
CREATE DATABASE DB01;
USE DB01;
CREATE TABLE TB01(ID INT, NAME VARCHAR(20));
INSERT INTO TB01 VALUES(1,'Z3');
SELECT * FROM TB01;

在这里插入图片描述

2.2 从服务器容器查看

从机使用库-查看记录

USE DB01;
SELECT * FROM TB01;

3 后记

虽然我们是内向的人,但我们也不要害怕上台讲话,既然上台了,就好好讲,慢慢讲,无所谓哒~

任何事情要么就不做,要么就尽自己的能力做到问心无愧就好!

家人们,BB们,本篇文章对您有帮助的话,记得给我点个赞赞,咱们再离开昂!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/16579.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

我谈二值形态学基本运算——腐蚀、膨胀、开运算、闭运算

Gonzalez从集合角度定义膨胀和腐蚀,不易理解。 Through these definitions, you can interpret dilation and erosion as sliding neighborhood operations analogous to convolution (or spatial filtering). 禹晶、肖创柏、廖庆敏《数字图像处理(面向…

力扣题目解析--合并两个链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 [] 输出&#xff…

基于yolov8、yolov5的鸟类分类系统(含UI界面、训练好的模型、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型:     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 , 直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有 GPU&#xff0…

css:浮动

网页的本质上就是摆放盒子,把盒子摆到相应的位置上 css提供了三种传统的布局方式: 普通流(标准流):标签按默认方式排列,最基本的布局方式 浮动 定位 实际开发中,一个网页基本包含了三种这种布局…

Essential Cell Biology--Fifth Edition--Chapter one (6)

1.1.4.4 Internal Membranes Create Intracellular Compartments with Different Functions [细胞膜形成具有不同功能的细胞内隔室] 细胞核、线粒体和叶绿体并不是真核细胞中唯一的膜包围细胞器。细胞质中含有大量的[ a profusion of]其他细胞器,这些细胞器被单层膜…

量子奇异值阈值算法

特征值分解只适用于方阵,如何扩展到任意形状的矩阵呢?奇异值分解能够解决此问题。量子奇异值阈值算法在奇异值分解的基础上将小的特征值设置为0,从而将小的特征值及其对应的特征向量去掉,进而降低矩阵的秩,达到降维的目…

Python_爬虫3_Requests库网络爬虫实战(5个实例)

目录 实例1:京东商品页面的爬取 实例2:亚马逊商品页面的爬取 实例3:百度360搜索关键词提交 实例4:网络图片的爬取和存储 实例5:IP地址归地的自动查询 实例1:京东商品页面的爬取 import requests url …

黑马微项目

目录 1 飞机票 2 生成一个五位数验证码 3 数字加密 4 数字解密 5 抢红包 6 双色球系统 7 用户登录 8 金额转换 9 手机号屏蔽 10 罗马数字转换 11 调整字符串 12 初级学生管理系统(学生数据的管理) 13 学生管理系统(用户的相关操…

基于lighthouse搭建私有网盘Cloudreve【开源应用实践】

基于lighthouse搭建私有网盘Cloudreve【超高性价比】 今天给大家分享一款私人网盘神器,既能存放你的文件文档,也能替你保存那不可告人的秘密~ 香菇今天将手把手教给大家如何在腾讯云轻量应用服务器上搭建个人专属网盘 1. 既爱又恨的网盘存储 很多小伙伴…

博物馆实景复刻:开启沉浸式文化体验的新篇章

随着数字化技术的飞速发展,博物馆的展览形式正在经历一场前所未有的变革。3数字博物馆和3D线上展览,这种创新的展览方式不仅打破了时间和空间的限制,更让文化遗产的保护与传承迈上了一个新的台阶。 本文将深入探讨博物馆实景复刻虚拟展厅的兴…

java中设计模式的使用(持续更新中)

概述 设计模式的目的:编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有…

linux基础io重定向

文章目录 目录 文章目录 前言 一、函数的认识 1、认识close函数和dup2函数 1、close函数: ​编辑 2、write、read函数 1、write函数 2、read函数 二、重定向 1.引入函数dup2 ​编辑 2、输出重定向 3.输出重定向 三、myshell重定向 总结 前言 接上一篇,…

[STM32] 定时器应用之输出比较 (五)

文章目录 1.输出比较2.PWM 介绍3.配置PWM 1.输出比较 OC: 输出比较。 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。每个高级定时器和通用定时器都拥有4个输出比较通道高级定…

【计算机毕设】无查重 基于python豆瓣电影评论舆情数据可视化系统(完整系统源码+数据库+开发笔记+详细部署教程)✅

目录 【计算机毕设】无查重 基于python豆瓣电影数据可视化系统(完整系统源码数据库开发笔记详细部署教程)✅ 一、项目背景 二、项目目标 三、项目功能 四、开发技术介绍 五、数据库设计 六、项目展示 七、开发笔记 八、启动步骤文档 九、权威教…

后台管理系统窗体程序:个人中心

目录 个人中心的功能介绍: 1、进入页面 2、页面内的各种功能设计 (1)修改按钮 (2)页面的进入退出操作 一、网页设计 二、html代码 三、css代码 四、js代码 本次项目为后台管理系统,在本系统内的第七…

PLC如何支持GEM300标准?SECS/GEM通讯协议

1. 提供技术服务,保证户使用没问题 2. 支持市场所有的常规PLC 3. 支持常规组态软件,如wincc、组态王、组态屏等 4. 支持各类传感器,私有协议、modbus、web等 5. 无需二次开发,只需配置映射到已有的PLC地址 GEM300协议是为了满…

用 Google Sheets 表格增强 Tableau 数据分析的 3 种玩法

轻松实现文本翻译、网页数据抓取,甚至创建高级日期表来增强 Tableau 可视化效果! 作为一款强大的数据可视化工具,Tableau 的可视化能力毋庸置疑。然而,对于跟表格打交道的用户来说,它没有“创建表格”的功能&#xff0…

计算机网络 (3)计算机网络的性能

一、计算机网络性能指标 速率: 速率是计算机网络中最重要的性能指标之一,它指的是数据的传送速率,也称为数据率(Data Rate)或比特率(Bit Rate)。速率的单位是比特/秒(bit/s&#xff…

CAP与BASE分布式理论

CAP理论 C:Consistency 一致性:指强一致性,分布式系统中的所有节点在同一时刻具有同样的值、都是最新的数据副本,一致性保证了不管向哪台服务器写入数据,其他的服务器能实时同步数据 强一致性:写入数据的时…

【Java基础知识系列】之Java类的初始化顺序

前言 类的初始化顺序 简单场景 代码示例 public class Person {private String name initName();private String initName() {System.out.println("【父类】初始化实例变量name");return "【父类】史蒂夫";}private int age;private static int staticVa…