docker部署mysql主从复制篇

环境准备:docker服务安装,mysql镜像

配置文件方式:可以挂载目录,也可以写好配置文件,利用docker cp 到容器内,这里直接在启动镜像创建容器时候挂载目录方式
服务器上配置文件内容(下图标红路径):

新建目录和配置文件  ,配置文件内容参考

/root/master/conf/my.cnf复制如下内容---主库

[mysqld]
## 同一局域网内注意要唯一
server-id=1024#这里是复制其他人的,感觉应该是server_id,后边报错主从service_id重复可能就是这个原因,先不管
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
secure_file_priv=/var/lib/mysql
default_authentication_plugin=mysql_native_password  #设置密码规则
#default_authentication_plugin=caching_sha2_password
max_connections=1000 #最大连接数设置 根据实际需要 自行调整

/root/slave/conf/my.cnf复制内容如下--从库

[mysqld]
## 设置server_id,注意要唯一
server-id=1022 
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin   
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
secure_file_priv=/var/lib/mysql
default_authentication_plugin=mysql_native_password  #设置密码规则
max_connections=1000 #最大连接数设置 根据实际需要 自行调整

创建容器,挂载配置文件

docker run --name master -p 3339:3306  \
 -v "$PWD/master/conf/my.cnf":/etc/mysql/my.cnf \
 -v "$PWD/master/data":/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

docker run --name slave -p 3340:3306 \
 -v "$PWD/slave/conf/my.cnf":/etc/mysql/my.cnf \
 -v "$PWD/slave/data":/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

利用navicat测试链接,用户root,密码123456

确保主从数据库都可正常访问即可,

1-在客户端命令行页面(主库)建用户,授权

CREATE USER 'slave'@'%' IDENTIFIED with mysql_native_password BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

2-查看主库的参数,稍后需要在从库里面配置,show master status;

3-主库容器IP地址

回到linux服务器,执行命令查看master容器的ip地址-

docker inspect --format={{.NetworkSettings.IPAddress}} master

三个参数:ip,file,position得值获取后,链接从库的命令行模式

 change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='binlog.000006', master_log_pos=1349, master_connect_retry=30;

配置好以后,启动  

start slave;

4-切换服务器从库容器内,查看状态信息

show slave status \G;

下面没有报错信息,切红色框内值是yes表示启动成功。如果有错误日志,根据日志修改(后面有介绍,然后stop slave,reset slave,start slave,停止,重置,启动,注意观察主库的三个参数是否有变化。从库change里的ip,file,pos要对应上。

测试方法:主库新建数据库或表,刷新从库看是否同步,如果同步表示mysql主从复制搭建完毕。

------------------------------------------------------------------------------------------------------------------------------

遇到的问题:主从数据库的service_id相同导致错误,修改从数据库的id值即可

报错日志:

Last_IO_Error: Fatal error: The replica I/O thread stops because source and replica have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on replica but this does not always make sense; please check the manual before using it).

解决办法:主service_id

从service_id 

设置完重启测试,

测试:主数据创建数据库aaa,刷新从数据库,可以看到aaa数据库已同步

参考:基于docker的Mysql主从数据库配置_docker mysql 主从配置-CSDN博客

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

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

相关文章

WEB 3D技术 three.js 顶点缩放

本文 我们来说 顶点缩放 我们官网搜索 BufferGeometry 下面有一个 scale 函数 例如 我们先将代码写成这样 上面图片和资源文件 大家需要自己去加一下 import ./style.css import * as THREE from "three"; import { OrbitControls } from "three/examples/j…

Maven的心脏:深入解析settings.xml配置文件

Maven作为Java世界中最著名的构建工具之一,其灵魂所在无疑是那些配置文件。在这些配置文件中,settings.xml扮演着至关重要的角色。今天,我们就来深入剖析这个Maven的心脏部件,看看它如何为我们的项目搏动生命。 一、Maven settin…

分布式事务相关问题及答案(2024)

1、什么是分布式事务,它与单机事务有何区别? 分布式事务是一种跨多个网络分布的计算机节点和资源管理系统的事务。它确保了即便在不同的物理和逻辑分区中,这些操作要么全部成功,要么全部失败,从而保持了事务的原子性。…

常用类型_枚举..

1.自定义类实现枚举效果 现在有这么一个需求: 如果想要表示固定数量的固定值的话 用什么类型比较好 如果从已知的类型来看 仿佛什么类型也不太合适 比如用int类型标识的话 不符合我固定数量的固定值的要求 我们假设用一个类去实现这个需求: 在这个类中提…

NVIDIA GeForce RTX 3090 GPU系列

NVIDIA GeForce RTX™ 3090 Ti 和 3090 采用第 2 代 NVIDIA RTX 架构 – NVIDIA Ampere 架构。该系列产品搭载专用的第 2 代 RT Core ,第 3代 Tensor Core、全新的 SM 多单元流处理器以及令人惊叹的 24GB G6X 显存,所有特性都旨在全力为游戏玩家和创作者…

【2024系统架构设计】 系统架构设计师第二版-信息系统架构设计理论与实践

目录 一 信息系统架构概念 二 信息系统架构 三 信息系统架构设计方法 四 信息系统架构案例

MySQL 临时表

MySQL 临时表 MySQL 临时表在我们需要保存一些临时数据时是非常有用的。 临时表只在当前连接可见,当关闭连接时,MySQL 会自动删除表并释放所有空间。 在 MySQL 中,临时表是一种在当前会话中存在的表,它在会话结束时会自动被销毁…

【教学类-09-04】20240102《游戏棋N*N》数字填写,制作棋子和骰子

作品展示 背景需求: 最近在清理学具材料库,找到一套1年多前的《N*N游戏棋》,把没有用完的棋盘拿出来,,想给大4班换花样,并把它们用掉。 程序代码在这里 【教学类-09-03】20221120《游戏棋10*10数字如何直接…

深度学习目标检测模型常用于部署在边缘计算设备上,常用于部署的边缘计算设备有哪些。

问题描述:深度学习目标检测模型常用于部署在边缘计算设备上,常用于部署的边缘计算设备有哪些。 问题解答: 在边缘计算设备上部署深度学习目标检测模型通常需要考虑设备的计算能力、内存、功耗等因素。以下是一些常用于部署深度学习目标检测模…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(九)——Estimate——倒数第二节

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

马目标检测数据集VOC格式500张

马,一种优雅而强健的哺乳动物,以其独特的形态和特点而闻名于世。 马的体型高大,四肢修长,有着强健的肌肉和结实的骨骼。马头一般较长,眼睛炯炯有神,耳朵直立,鼻子和嘴巴都较大。毛发根据品种不…

C++ 双链表数组模拟 || 删除和插入节点 ||双链表模版题

实现一个双链表,双链表初始为空,支持 5 种操作: 在最左侧插入一个数; 在最右侧插入一个数; 将第 k 个插入的数删除; 在第 k 个插入的数左侧插入一个数; 在第 k 个插入的数右侧插入一个数 现在要…

黑马程序员SSM框架-Maven进阶

视频链接:Maven-01-分模块开发的意义_哔哩哔哩_bilibili 分模块开发与设计 分模块开发意义 分模块开发 依赖管理 依赖传递 依赖传递冲突问题 可以点击红框按钮查看依赖情况。 可选依赖和排除依赖 继承和聚合 聚合 聚合工程开发 继承 聚合和继承的区别 属性 属性…

大模型在现代应用中的多元实例

目录 前言1 GPT-3、GPT-3.5、GPT-4:自然语言处理的新纪元1.1 GPT-3与传统NLP方法的区别1.2 GPT-3.5 和 GPT-4 的进展1.3 技术背后的革新 2 自然语言转换为Python代码2.1 简介2.2 技术原理2.3 应用和优势 3 DALL-E 2(5B)图像生成3.1 简介3.2 技…

【Bootstrap学习 day11】

Bootstrap5字体图标 字体图标是在Web项目中使用的图标字体。 使用字体图标的好处是,可以通过应用CSS color属性来创建任何颜色的图标。此外,要更改图标的大小,只需使用CSS font-size属性即可。 获取字体图标 在网页中包含Bootstrap5图标的最…

深入了解Apache 日志,Apache 日志分析工具

Apache Web 服务器在企业中广泛用于托管其网站和 Web 应用程序,Apache 服务器生成的原始日志提供有关 Apache 服务器托管的网站如何处理用户请求以及访问您的网站时经常遇到的错误的重要信息。 什么是 Apache 日志 Apache 日志包含 Apache Web 服务器处理的所有事…

tyxsspa/AnyText 阿里生成文字

Dockerfile ################ # 使用 NVIDIA CUDA 11.8 开发环境作为基础镜像 FROM nvcr.io/nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 # 设置非交互式安装模式以避免某些命令在构建过程中暂停 ENV DEBIAN_FRONTENDnoninteractive # 更新软件包列表并安装基本工具 RUN…

B+树索引及其原理

MySQL索引的底层结构是B树,为什么它会选择这个结构?联合索引是怎么实现的?最左侧匹配原则的原理是什么?本文将一一解答这些疑惑。 1 前置知识 在学习B树之前,我们先了解下其他的树形结构:二叉树、平衡二叉…

locust 快速入门--异常(Exceptions)与失败(Failures)

背景&#xff1a; 使用locust进行压测的时候&#xff0c;服务器响应已经异常了&#xff0c;但是从UI页面上看到的还是正常的响应。直至服务完全挂掉&#xff0c;才会出现异常信息。 locust认为HTTP响应代码是OK&#xff08;<400&#xff09;是成功的。实际服务的响应代码是2…