Docker进阶篇-安装MySQL主从复制

一、MySQL主服务器

1、新建主服务器容器实例3307

docker run -p 3307:3306 \--name mysql-master \--privileged=true \-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

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

cd /mydata/mysql-master/conf
vim 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

3、修改完配置后重启master实例

docker restart mysql-master

4、进入mysql-master容器

docker exec -it mysql-master /bin/bash
mysql -uroot -p
show databases;

 

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

# 创建数据同步用户
create user 'slave'@'%' identified by '123456';
# 授权
grant replication slave, replication client on *.* to 'slave'@'%';

二、MySQL从服务器

1、新建从服务器容器实例3308

docker run -p 3308:3306 \--name mysql-slave \--privileged=true \-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

2、进入/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

3、修改完配置后重启master实例

docker restart mysql-slave

三、主从同步配置

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

# 进入主数据库容器
docker exec -it mysql-master /bin/bash
# 进入Mysql 
mysql -uroot -p
# 查看主从同步状态 
show master status;

查看返回结果的文件名File、当前位置Position,下面用得上

2、进入mysql-slave数据库容器,配置主从复制

  • 进入从数据库
# 进入从数据库容器
docker exec -it mysql-slave /bin/bash
# 进入Mysql 
mysql -uroot -p
  • 配置从数据库所属的主数据库
change master to master_host='192.168.100.134',master_user='slave',master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000004',master_log_pos=154,master_connect_retry=30;

命令详解:

master_host:主数据库IP地址(即宿主机IP)

master_user:在主数据库创建的用于同步数据的用户账号

master_password:在主数据库创建的用于同步数据的用户密码

master_port:主数据库端的运行端口

master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数(在上面)

master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数(在上面)

master_connect_retry:连接失败重试时间间隔,单位为秒

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

# \G 将横向的结果集表格转换成纵向展示
show slave status \G;

Slave_IO_Running、Slave_SQL_Running目前两个值都为 No,未开启主从同步。

4、在从数据库中开启主从同步

start slave;

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

show slave status \G;

6、主从复制测试

  • 主数据库新建库、使用库、新建表、插入数据
create database db01;
use db01;
create table t1(id int,name varchar(20));
insert into t1 values(1,'zhangsan');

  • 从数据库使用库、查看记录
use db01;
select * from t1;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux编辑器---vim

目录 1、vim的基本概念 2正常/普通/命令模式(Normal mode) 2、1命令模式下一些命令(不用进入插入模式) 3插入模式(Insert mode) 4末行/底行模式(last line mode) 4、1底行模式下的一些命令 5、普通用户无法进行sudo提权的解决方案 6、vim配置问题 6、1配…

基于 Redis 实现高性能、低延迟的延时消息的方案演进

1、前言 随着互联网的发展,越来越多的业务场景需要使用延迟队列。比如: 任务调度:延时队列可以用于任务调度,将需要在未来某个特定时刻执行的任务放入队列中。消息延迟处理: 延时队列可以用于消息系统,其中一些消息需要在一段时间后才能被消…

RK3568平台 HDMI交换机芯片PI3HDX231

一.简介 HDMI交换机芯片是一款可以同时输入几路HDMI的芯片,通过设计交换机芯片的寄存器值,已选择 其中一路作为输出。 I3HDX231是3:1 HDMI线性ReDriver交换机,支持每通道6 Gbps的数据速率,4096 x 2160像素分辨率,彩色…

Yolov7, Yolov8使用

YOLOV7 1. 安装和测试: 【小白教学】如何用YOLOv7训练自己的数据集 - 知乎 YOLOv7——训练自己的数据集 - 代码网 conda create --nameyolov7 python3.8 #the version of your python3 *** 这里需要注意如果 torch 和torchvion版本太高,会导致GPU不可…

Python项目——搞怪小程序

1、介绍 使用python编写一个小程序,回答你是猪吗。 点击“是”提交,弹窗并退出。 点击“不是”提交,等待5秒,重新选择。 并且隐藏了关闭按钮。 2、实现 新建一个项目。 2.1、设计UI 使用Qt designer设计一个UI界面&#xff0c…

《Python数据分析技术栈》第03章 01 正则表达式(Regular expressions)

01 正则表达式(Regular expressions) 《Python数据分析技术栈》第03章 01 正则表达式(Regular expressions) A regular expression is a pattern containing both characters (like letters and digits) and metacharacters (li…

Java 变量与标识符(命名规范)

变量 变量表示内存中的一个存储区域(不同的变量,类型不同,占用的空间大小不同)。 在Java中,每一个变量都有一个类型(type),变量的类型位于变量名之前。**变量名必须是以一个字母开…

添加dns解析缓存

添加dns解析缓存,加速页面访问 1、查询网址的ip地址 例如需要加速访问github.com,打开网站 IPAddress.com 查询 github.global.ssl.fastly.net 和 github.com 两个地址 找到对应的IP地址在命令行Ping通 2、修改本地hosts文件 windows系统的hosts文件…

深入解析JavaScript中箭头函数的用法

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 箭头函数(Arrow function)是JavaScript ES6中引入的一大特性。箭头函…

739.每日温度 496.下一个更大元素 I

739.每日温度 496.下一个更大元素 I 739.每日温度 力扣题目链接(opens new window) 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二)

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二) 在 Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin-CSDN博客 基础上&…

操作系统——进程管理篇

操作系统——进程管理篇(王道23年版) 2.1_1_进程的概念、组成、特征 1.进程的概念 程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合 进程:是动态的,是程序的一次执行过…

微服务治理:微服务安全详解

微服务安全旨在保护微服务架构中每一个独立的服务。与传统单体应用程序不同,它们在单点应用安全措施,微服务由于其独立性,需要分布式安全方法。 为何关注微服务安全? 攻击面扩大: 更多服务暴露在外,意味着攻击者拥有…

使用 Swift 代码优化项目编译速度

引言 软件的性能是评价一个软件质量的重要指标,尤其在今天这个时代,性能已成为大型项目不可或缺的考虑因素之一。对于用户量极大的软件,如网银系统、在线购物商城等,更是必须保证其高效稳定的性能。在这种背景下,优化…

【Linux】——期末复习题(一)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

学习笔记应用——创建用户账户并且拥有自己的信息

一、创建用户账户 将建立一个用户注册和身份验证系统,让用户能够注册账户,进而登录和注销。我们将创建一个新的应用程序,其中包含与处理用户账户相关的所有功能。 创建user 我们首先使用命令 startapp 来创建一个名为 users 的应用程序&…

大语言模型无代码构建知识图谱概述

2023年3月15日,ChatGPT4.0的横空出世,将人们对大语言模型的关注推到了风口浪尖。由于其在智能问答、翻译以及文本生成等工作任务上的卓越表现,业界一度出现了不再需要发展知识图谱相关技术的观点,知识图谱相关概念严重受挫。无可置…

如何有效防爬虫?一文讲解反爬虫策略

企业拥抱数字化技术的过程中,网络犯罪分子的“战术”也更难以觉察,并且这些攻击越来越自动化和复杂,也更加难以觉察。在众多攻击手段中,网络爬虫是企业面临的主要安全挑战。恶意爬虫活动可能导致数据滥用、盗窃商业机密等问题&…

Spring Cloud可视化智慧工地大数据云平台源码(人、机、料、法、环五大维度)

智慧工地平台是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三…

5、交叉验证

交叉验证 在本教程中,您将学习如何使用交叉验证来更好地衡量模型的性能。 本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2 提取码:uDzP 文章目录 1、简介2、什么是交叉验证3、什么时候应该使用交叉验证?4、举例1)加载数据集2)创建管道3)获取MAE…