当前位置: 首页 > news >正文

搭建`mongodb`副本集-开启权限认证 mongo:7.0.5

搭建mongodb副本集-开启权限认证 mongo:7.0.5

1.5.1、创建文件

创建配置文件保存目录和数据保存目录
mkdir -p /data/mongodb/{/conf,/data,/logs}
  • 生成和设置权限

这个文件一定要在一个服务里面生成然后复制到其它服务器,所有服务器的这个key一定是相同的。

openssl rand -base64 756 > /data/mongodb/conf/mongodbKeyfile.keychmod 400 /data/mongodb/conf/mongodbKeyfile.key

192.168.1.124节点生成,然后复制到其它4个节点中。

scp mongodbKeyfile.key root@192.168.1.125:/data/mongodb/conf
scp mongodbKeyfile.key root@192.168.1.126:/data/mongodb/conf
scp mongodbKeyfile.key root@192.168.1.127:/data/mongodb/conf
scp mongodbKeyfile.key root@192.168.1.128:/data/mongodb/conf

1.5.2、配置文件

  • 第一台MongoDB配置文件

注意:更改端口号为最终端口号。这里的配置文件里面,不增加任何认证的问题,因为这只是为了集群和创建用户用的,后面需要重新覆盖掉。

vim /data/mongodb/conf/mongod.conf
net:port: 27017 # 这是启动端口bindIp: 0.0.0.0  # 允许哪些ip连接(好像和下面的命令参数 --bind_ip_all 相类似的作用)
systemLog:logAppend: true #  重新启动的mongodb的时候日志拼接在以前的日志文件上,不用新建
security:keyFile: /data/configdb/mongodbKeyfile.key  # 这个路径很重要(注意这个路径是下面容器映射过的路径),不要写宿主机的绝对路径,容器是访问不到宿主机的,应该写容器中的路径。authorization: "enabled" # 开启客户端连接验证
replication:replSetName: "rs"  # 副本集的名称
setParameter:# 事务锁超时最长时间(毫秒)默认 3 毫秒maxTransactionLockRequestTimeoutMillis: 1000

1.5.3、创建启动命令

首先不要增加任何认证,先启动不用认证的mongodb,在里面将需要的集合、副本和用户名密码权限等信息创建好,在使用需要认证的命令重新创建容器。因为配置的信息已经映射到宿主机上了,只要不把宿主机上的数据删除,所有配置都是存在的。

mkdir -p /opt/docker
vi /opt/docker/mongodb.sh
  • 不用认证的命令
MONGODB_DIR=/data/mongodb
NAME=mognodb
CONF=/data/mongodb/conf
docker stop ${NAME}
docker rm ${NAME}
docker run --name ${NAME} \-p 35964:27017 \-v ${MONGODB_DIR}/data:/data/db \-v ${CONF}:/data/configdb \-v ${MONGODB_DIR}/logs:/data/log \-d mongo:7.0.5 \--replSet "rs"

  • 启动
sh /opt/docker/mongodb.sh

1.5.4、配置副本

  • 连接任意一个节点,进行副本集配置
docker exec -it mognodb /bin/bash

连接三个节点中的任意一个,链接这个就是主节点。

./usr/bin/mongosh
  • 配置副本
var config={_id:"rs",members:[{_id:1,host:"192.168.1.124:35964",priority:5},{_id:2,host:"192.168.1.125:35964",priority:4},{_id:3,host:"192.168.1.126:35964",priority:3},{_id:4,host:"192.168.1.127:35964",priority:2},{_id:5,host:"192.168.1.128:35964",priority:1},
]};
rs.initiate(config)
  • 查看副本集配置信息
 rs.conf()
  • 查看副本集状态
rs.status()

1.5.5、创建用户名和密码

  • 切换数据库和创建用户
use userdb
db.createUser({ user: 'oeirnergnekladc', pwd: 'aE3UurXjWtxbHN80RCxL', roles: [ { role: "root", db: "admin" } ] });
db.auth('oeirnergnekladc', 'aE3UurXjWtxbHN80RCxL');

这里需要注意权限的问题,权限给root似乎太大了,但是也不能给太小,给太小会发现干啥都没权限。

在这里插入图片描述

1.5.6、创建需要认证的启动命令

  • 先退出mongodb和容器,回到宿主机
exit
exit

把原来的启动命令删除,重新编辑启动命令。

rm -rf /opt/docker/mongodb.sh
vi /opt/docker/mongodb.sh
  • 写入启动命令
MONGODB_DIR=/data/mongodb
NAME=mognodb
CONF=/data/mongodb/conf
docker stop ${NAME}
docker rm ${NAME}
docker run --name ${NAME} \-p 35964:27017 \-v ${MONGODB_DIR}/data:/data/db \-v ${CONF}:/data/configdb \-v ${MONGODB_DIR}/logs:/data/log \--restart=always \-d mongo:7.0.5 \--replSet "rs"  \--auth --bind_ip_all -f "/data/configdb/mongod.conf"
  • 重启mongodb
sh /opt/docker/mongodb.sh

原创不易,转发制定出处,感谢网友理解在这里插入图片描述

相关文章:

搭建`mongodb`副本集-开启权限认证 mongo:7.0.5

搭建mongodb副本集-开启权限认证 mongo:7.0.5 1.5.1、创建文件 创建配置文件保存目录和数据保存目录 mkdir -p /data/mongodb/{/conf,/data,/logs}生成和设置权限 这个文件一定要在一个服务里面生成然后复制到其它服务器,所有服务器的这个key一定是相同的。 op…...

智能工厂的软件设计 由“原力“篇引发的思考: 回顾、展望和本位 之2 修订稿之2

Q15、《“工厂”篇》其前的《“公共逻辑”》篇 提出的三个专门工厂(抽象/项目/产品)以及 再之前 讨论的各自的“专项运作逻辑”(辩证/数理/形式)之间协作的“整体概念运作”“概念模式”给出一个标准的“公共逻辑”的“语言模板”…...

2025选题推荐|基于SpringBoot的幼儿园智能管理与监控系统的设计与实现

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…...

mqtt客户端订阅一直重复连接?

文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者,我们创造bug,传播bug,毫不留情地消灭bug,在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案,感兴…...

SegFormer: 一个基于Transformer的高效视觉图像分割算法

今天我分享一篇关于 Transformer 架构在图像视觉分割中的应用的文章,主题是 SegFormer。SegFormer 是一种新颖的语义分割方法,它结合了无位置编码的层次化 Transformer 编码器和轻量级 All-MLP 解码器,避免了传统方法中的复杂设计&#xff0c…...

SoC芯片中Clock Gen和Reset Gen的时钟树综合

社区目前已经开设了下面列举的前四大数字后端实战课程,均为直播课,且均是小编本人亲自授课!遇到项目问题,都可以远程一对一指导解决具体问题。小编本人是一线12年后端经验的数字后端工程师。想找一线IC后端技术专家亲自带你做后端…...

学习资料:电子标签拣货技术

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件主要介绍了电子标签拣货技术&#xff0c…...

Git 提交规范参考

Git 提交规范参考 feat 增加新的业务功能fix 修复业务问题/BUGperf 优化性能style 更改代码风格, 不影响运行结果refactor 重构代码revert 撤销更改test 测试相关, 不涉及业务代码的更改docs 文档和注释相关chore 更新依赖/修改脚手架配置等琐事workflow 工作流改进ci 持续集成…...

【前端】Matter:物体的高级控制

在 Matter.js 中,除了简单的物体创建和碰撞检测外,还可以通过高级控制实现更复杂的物理交互与模拟效果。本教程将介绍如何使用 约束 (Constraint)、复合物体 (Composite) 以及如何进行 运动与旋转控制,来实现链条、摆钟等效果,以及…...

ASP.NET Core 路由规则 MapControllerRoute、MapDefaultControllerRoute、MapController

MapControllers 来映射属性路由控制器。 资料...

linux命令之less用法

less 分屏上下翻页浏览文件内容 补充说明 less命令 的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页&…...

试用cursor的简单的记录

快下班时又饿了,饿了几个小时了。中午那点饭,没够顶到下班。难怪店家说饭可以随便加。 所以不编码了,本周任务也超额完成了,这种状态再去编码调试,搞不好会写出自己不认识的代码。 本周工作中,新的事务是…...

下载Edge/Chrome浏览器主题的背景图片

当我们为Edge安装了心仪的主题后,希望把对应的背景图片下载保存要怎么做呢,以下图的“湖心小屋”主题为例。如下图,我们已经在应用商店中按照了该主题。 当打开新标签页后,可以欣赏这个主题内置的背景图片。 如果想要下载这个背景…...

Python解力扣算法题4(基础)

# 1.求斐波那契数列下标为n的数 &#xff08;从零开始&#xff09; # def fib(n): # if n < 2: # return n # # p, q, r 0, 0, 1 # for i in range(2, n 1): # p, q q, r # r p q # # return r#2. 和谐数组是指一个数组里元素…...

鸿蒙NEXT开发-网络管理(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...

【LeetCode每日一题】——1413.逐步求和得到正数的最小值

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 1413.逐步求和得到正数的最小值 四【题目描述】…...

音频分割:长语音音频 分割为 短语音音频 - python 实现

在做语音任务时&#xff0c;有是会用到的语音音频是长音频&#xff0c;这就需要我们将长音频分割为短音频。 该示例将声音的音量和静默时间结合作为语音的分割条件。 使用音量和静默时间结合的分割条件&#xff0c;能够比较好的进行自然断句&#xff0c;不会话语没有说完就切断…...

【Echarts动态排序图,series使用背景色更新动画,背景底色不同步跟随柱子动画】大家有没有解决方案

echarts动态排序图背景色动画不同步 echarts试一试 series下面添加了showBackground属性&#xff0c;动画时底色背景不同步跟随柱图 showBackground: true, backgroundStyle: {borderRadius: 9,color: RGB(255,199,91, 0.2) }const data []; for (let i 0; i < 5; i) {d…...

FLINK SQL 元数据持久化扩展

Flink SQL元数据持久化扩展是一个复杂但重要的过程&#xff0c;它允许Flink作业在重启或失败后能够恢复状态&#xff0c;从而确保数据处理的连续性和准确性。以下是对Flink SQL元数据持久化扩展的详细分析&#xff1a; 一、元数据持久化的重要性 在Flink中&#xff0c;元数据…...

MySQL【知识改变命运】04

复习&#xff1a; 1&#xff1a;CURD 1.1Create &#xff08;创建&#xff09; 语法&#xff1a; insert [into] 表名 [column[,column]] valuse(value_list)[,vaule_list]... value_list:value,[value]...创建一个实例表&#xff1a; 1.1.1单⾏数据全列插⼊ values_l…...

政企数据安全:危机与出路

随着数字化转型的浪潮席卷全球&#xff0c;公共部门积累的数据量呈爆炸式增长。从公民个人信息到公共服务记录&#xff0c;从财政预算到基础设施管理数据——这些宝贵资源在提升政府治理效率的同时&#xff0c;也悄然成为网络犯罪分子的“新猎物”。当公共数据逐渐成为数字时代…...

3步解锁专业级MMD创作:Blender插件如何重塑二次元动画工作流

3步解锁专业级MMD创作&#xff1a;Blender插件如何重塑二次元动画工作流 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools …...

广州因特智能:AI视觉软硬结合,打破半导体检测装备“卡脖子”困境

【导语&#xff1a;广州因特智能科技孵化于西安电子科技大学广州研究院&#xff0c;专注用AI视觉技术解决工业场景的“卡脖子”检测难题&#xff0c;为半导体、光通信、新能源三大领域提供高端检测装备。】校地合作孵化&#xff0c;构建完整能力体系广州因特智能科技由西安电子…...

压测不只是加并发:我们模拟真实用户行为后,发现了隐藏瓶颈

在性能测试领域&#xff0c;一个根深蒂固的误解是&#xff1a;压测就是使劲加线程数&#xff0c;看系统什么时候崩。很多团队用 JMeter 起 500 个并发&#xff0c;照着接口列表跑一圈&#xff0c;看到 TPS 平稳、响应时间没超过 300ms&#xff0c;就觉得万事大吉。可一旦上线&a…...

Burp插件自动化渗透测试工作流:零基础入门与效率跃迁

1. 这不是“插件合集”&#xff0c;而是渗透测试工作流的底层操作系统重构 你有没有试过在Burp Suite里打开一个新目标&#xff0c;点开Proxy历史&#xff0c;看着几十个HTTP请求发呆——不知道该从哪条请求下手&#xff1f;右键菜单里密密麻麻的“Send to Repeater”“Send to…...

从UE/Unity转战Godot:一个老引擎开发者的踩坑与真香实录

从UE/Unity转战Godot&#xff1a;一个老引擎开发者的踩坑与真香实录 第一次双击Godot图标时&#xff0c;我正坐在堆满Unity参考书的办公桌前。作为用过五年Unity、三年Unreal的"引擎老油条"&#xff0c;我带着审视新玩具的心态点开了这个不到100MB的绿色软件——没想…...

解决grunt-webfont常见问题:跨浏览器兼容与Firefox字体加载故障排除指南

解决grunt-webfont常见问题&#xff1a;跨浏览器兼容与Firefox字体加载故障排除指南 【免费下载链接】grunt-webfont SVG to webfont converter for Grunt 项目地址: https://gitcode.com/gh_mirrors/gr/grunt-webfont grunt-webfont 是一个强大的SVG转网页字体工具&…...

从Windows/Ubuntu到麒麟V10:给双系统玩家的分区避坑指南(附ESP/SYSBOOT详解)

从Windows/Ubuntu到麒麟V10&#xff1a;双系统分区规划全解析当你在已有Windows或Ubuntu的电脑上准备安装银河麒麟V10桌面版时&#xff0c;分区规划往往是第一个需要跨越的技术门槛。不同于单系统安装的"下一步"式操作&#xff0c;多系统共存需要对磁盘布局有更深入的…...

卷积神经网络(CNN)与深度学习视觉应用综述

在深度学习领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09;是实现计算机视觉任务的基石。通过对这些基础理论的学习&#xff0c;我们能够构建起从特征提取到复杂场景理解的知识体系。第一部分&#xff1a;卷积神经网络基础1. 全连接网络面临的挑战传统的全连接神经网…...

JMeter精准1QPS压测:从CTT原理到Groovy高精度定时器实现

1. 这不是“设个线程数”就能搞定的事&#xff1a;为什么1秒1次请求在JMeter里反而最难稳很多人第一次做压测&#xff0c;看到需求“每秒发送1次请求”&#xff0c;第一反应是&#xff1a;“简单&#xff0c;开1个线程&#xff0c;Ramp-up时间设为0&#xff0c;循环次数设成100…...