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

01、MongoDB -- 下载、安装、配置文件等配置 及 副本集配置

目录

  • MongoDB -- 下载、安装、配置 及 副本集配置
    • 启动命令
      • 启动 mongodb 的服务器(单机和副本集)
        • 启动单机模式的 mongodb 服务器
        • 启动副本集的 3 个副本节点(mongodb 服务器)
      • 启动 mongodb 的客户端
    • MongoDB 下载
    • MongoDB 安装
      • 1、解压
      • 2、配置环境变量
      • 3、创建 mongod.conf 配置文件
      • 4、启动 MongoDB 服务器
        • 方式1:命令启动
        • 方式2:将 MongoDB 注册成 Windows 服务器
    • MongoDB 副本集节点介绍
    • MongoDB 副本集 配置
      • 1、添加不同节点的配置文件
      • 2、启动 3 个副本节点(mongodb 服务器)
      • 3、启动 mongodb 的客户端
      • 4、使用 mongodb 客户端定义副本集的信息
      • 5、初始化副本集
    • 查看副本集信息
      • rs.conf() :查看副本集的配置
      • db.isMaster() :查看当前连接是否为主节点
      • rs.status() :查看副本集的状态
      • rs.secondaryOk(true) :设置副节点可读取数据

MongoDB – 下载、安装、配置 及 副本集配置


启动命令


启动 mongodb 服务器 和 客户端 总结:


启动 mongodb 的服务器(单机和副本集)


启动单机模式的 mongodb 服务器

打开命令行窗口,执行如下命令即可启动 MongoDB 服务器了

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\mongod.conf"

就是只启动一个 mongodb 的服务器

在这里插入图片描述


启动副本集的 3 个副本节点(mongodb 服务器)

节点1:端口号:27017

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\replic\mongod_1.conf"

节点2:端口号:27018

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\replic\mongod_2.conf"

节点3:端口号:27019

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\replic\mongod_3.conf"

启动成功,如图

在这里插入图片描述


启动 mongodb 的客户端

打开命令行窗口,输入命令:

mongo

即可启动 mongodb 的客户端

启动成功,如图:

之所以只需要输入 mongo 就能启动 mongodb 的客户端,是因为我之前把 mongodb 的 bin 目录添加到 path 环境变量里面 。

在这里插入图片描述


MongoDB 下载


登录官网下载MongoDB的zip压缩包,并将压缩包解压到任意路径下。

点击产品,我这里选择社区版

在这里插入图片描述


我下载的版本是4.2.25,选择 zip 的压缩包进行下载。

在这里插入图片描述


MongoDB 安装


1、解压

把压缩包解压到这里,文件夹名字太长可以改短一点

在这里插入图片描述


解压后只有一个bin目录和一些授权文档

在这里插入图片描述


bin目录下包含了MongoDB数据库的两个重要命令:

mongod.exe(服务器端程序) 类似于redis.exe
mongo.exe(客户端程序)。 类似 redis-cli.exe

在这里插入图片描述


2、配置环境变量


建议将MongoDB安装目录下bin路径添加到系统PATH环境变量中。
方便操作系统能找到mongdb\bin目录下的命令

在这里插入图片描述


3、创建 mongod.conf 配置文件

运行 mongod.exe(服务端)需要指定大量选项,比如数据存储路径、日志存储路径等,
最简单的方式就是在运行 mongod.exe 命令时直接指定这些选项。
例如执行如下命令:mongod.exe --dbpath=..\data更好的方式是用 --config 选项来指定配置文件
(安装目录下有一个mongod.conf 配置文件 ,这个版本没有就自己创建一个),
通过配置文件可指定更多选项。
配置文件中所指定数据目录、日志目录,都需要由开发人员自行先创建。

因为这个版本的安装目录下没有 mongod.conf 配置文件 ,所以就自己创建一个。

创建 mongod.conf 配置文件

在这里插入图片描述


添加配置信息

在这里插入图片描述


根据自己创建的配置文件,创建文件夹

在这里插入图片描述


# mongod.conf
# 配置与存储有关的信息
storage:dbPath: E:\install\mongodb\mongodb-4.2.25\data\dbjournal:enabled: true# 指定与日志有关的信息,把日志输出到file文件夹
systemLog:destination: filequiet: truelogAppend: falsepath: E:\install\mongodb\mongodb-4.2.25\logs\mongod.log
#配置与网络有关的信息, mongodb 默认端口 27017
net:port: 27017bindIp: 0.0.0.0

4、启动 MongoDB 服务器


方式1:命令启动

打开命令行窗口,执行如下命令即可启动 MongoDB 服务器了

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\mongod.conf"

我在启动这个命令时遇到的问题:

命令行启动mongodb服务器的问题及解决方案 – Unrecognized option: storage.journal

命令行启动 mongodb 服务器的问题及解决方案:Error parsing YAML config file: yaml-cpp: errorxxx: illegal map value


如图:启动成功

在这里插入图片描述


可以通过查看刚刚创建的 data 数据文件夹和 logs 日志文件夹是否有初始数据,我这里有出现,表明启动 mongodb 成功。

在这里插入图片描述


通过上面的命令,可以启动 mongodb 服务器,但是每次使用 mongodb 这个数据库的话,都需要打开命令行窗口,执行这个命令来启动,就比较麻烦。

如图:服务里面没有 mongodb 这个服务

在这里插入图片描述


方式2:将 MongoDB 注册成 Windows 服务器

为了方便,我们可以以管理员的身份来执行如下命令可将 MongoDB 注册成 Windows 服务器

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\mongod.conf" --install

比上面的启动命令多了 --install

需要以管理员的身份来打开命令行窗口:

在这里插入图片描述


输入命令:

在这里插入图片描述


成功将 mongodb 注册成 Windows 服务器

在这里插入图片描述


直接启动,让它运行,就不用每次使用 mongodb 数据库时,都得用命令来启动 mongodb 服务器,直接让 mongodb 这个数据库在电脑开机后就运行。

在这里插入图片描述



MongoDB 副本集节点介绍


在这里插入图片描述


MongoDB 副本集中节点可分为三类:

主节点(Primary):接收所有的写请求,并将所有修改同步到所有副节点(Secondary)。

副节点(Secondary):与主节点保持相同的数据集。 当主节点宕机的时候,其中之一会被选为Primary节点。

仲裁节点(Arbiter):仲裁节点不保存数据,也不可能被选为Primary节点,它的作用就是负责选择主节点。仲裁节点对硬件资源要求很低,通常建议与主、副节点保存在不同机器上。


一个节点就是一个 mongodb 服务器


MongoDB 副本集 配置

接下来要演示在同一个电脑弄3个 mongodb 的副本节点。
如图,先把上面演示的注册成windows服务的那个mongodb的服务停掉
在这里插入图片描述


1、添加不同节点的配置文件


要在同一台机器上运行多个MongoDB服务,只要用不同的 mongod.conf 配置文件、将 MongoDB 配置为监听不同端口即可。

(如果要将它们都添加成Windows服务,那就要为它们指定不同的服务名和显示名)


副本集模式的配置文件应在后面添加如下配置(同一个副本集的所有节点应使用相同副本集名称):
这里设置的 rs 就是副本集的名称

 replication:replSetName: rs

1、先弄一个副本集,如图,创建一个replic文件夹,专门用来保存副本集模式的配置文件

在这里插入图片描述


2、把 congod.conf 配置文件拷贝一份到 replic 这个文件夹里面,修改配置文件的名字和内容,让其作为一个副本节点

在这里插入图片描述


3、因为我现在要弄三个节点(一个主节点、一个副节点,一个仲裁节点)来演示,所以把配置文件拷贝成3份,内容修改。


如图:

1、把 mongod.conf 配置文件拷贝三份,放到这个 replic 文件夹里面
2、每个节点的 mongod.conf 配置文件,都修改对应的data数据存储文件夹和log日志存储文件夹并创建出来。
3、然后每个节点都设置不同的端口号
4、显式指定我们绑定的这个主机的ip地址


这样就成功搞出3个副本节点出来了,然后这三个副本几点属于一个副本集,这个副本集叫:rs

在这里插入图片描述


2、启动 3 个副本节点(mongodb 服务器)


每个节点启动的命令不同,需要指定各自节点对应的 mongod_x.conf 配置文件

启动 3 个副本节点,也就是启动 3 个 mongodb 服务器。


节点1:端口号:27017

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\replic\mongod_1.conf"

节点2:端口号:27018

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\replic\mongod_2.conf"

节点3:端口号:27019

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\replic\mongod_3.conf"

启动节点成功,如图:

在这里插入图片描述


3、启动 mongodb 的客户端


打开命令行窗口,输入命令:

mongo

即可启动 mongodb 的客户端

在这里插入图片描述


4、使用 mongodb 客户端定义副本集的信息


上面启动了mongodb 的客户端之后,接下来就来定义副本集的信息。


使用 MongoDB 客户端执行如下命令:

定义副本集的配置:

rs_conf={ _id:"rs", members:[{_id:0, host:'192.168.0.107:27017',priority:1}, {_id:1, host:'192.168.0.107:27018',priority:2},   {_id:2, host:'192.168.0.107:27019',arbiterOnly:true}] }

如图:

在 MongoDB 中,rs 对象代表了副本集(Replica Set),在这里可以理解为定义了一个配置对象,

rs_conf 定义的配置对象指定了副本集的名称为:rs;

且指定该副本集包含3个节点:它们位于同一个主机上(192.168.0.107),只不过在不同的端口监听;

其中位于27019端口的节点是仲裁节点,它负责选举主节点

在这里插入图片描述


5、初始化副本集


继续在 mongodb 客户端初始化副本集,命令如下:

rs.initiate(rs_conf)

如图:{ “ok” : 1 } 则表示初始化成功

在这里插入图片描述


如图:secondary 表示当前启动的节点是副节点

在这里插入图片描述


再打开一个命令行窗口,启动 mongodb 客户端,同时指定一个节点端口号(mongodb 服务器)

输入命令:

mongo --port 27018

启动 27018 这个节点的客户端,可以看出此时这个节点是主节点。

(就是这个【客户端】是来操作 27018 这个节点【服务器】的)

在这里插入图片描述


如图:

至于 27017 和 27018 这个两个节点,谁是主节点,谁是副节点,我们是决定不了的。
这个是由 27019 这个仲裁节点决定的。

在这里插入图片描述


至此,mongodb 的副本集配置成功


查看副本集信息


可执行如下命令来查看副本集的相关信息:

命令在 主节点 或 副节点 查询都可以

rs.conf() :查看副本集的配置。

rs.status() :查看副本集的状态,可看到副本集内谁是主节点,谁是副节点,谁是仲裁节点等详细信息。

db.isMaster() :查看当前连接是否为主节点。

如果客户端当前连接到是副节点,可执行如下命令:

rs.slaveOk(boolean) :该命令设置副节点上是否可查看数据。默认状态下,副节点不允许查看数据。

副节点不允许写数据,除非它变成主节点。现在已经变成了secondaryOk()。



rs.conf() :查看副本集的配置

在这里插入图片描述


db.isMaster() :查看当前连接是否为主节点

在这里插入图片描述


rs.status() :查看副本集的状态

可看到副本集内谁是主节点,谁是副节点,谁是仲裁节点等详细信息。

在这里插入图片描述


rs.secondaryOk(true) :设置副节点可读取数据

如果客户端当前连接到是副节点,可执行如下命令: rs.secondaryOk(boolean)

该命令设置副节点上是否可查看数据。

默认状态下,副节点不允许查看数据。
副节点不允许写数据,除非它变成主节点。


如图:在副节点的命令行窗口,输入这个命令。

输入 :

rs.secondaryOk(true)

设置为true,表示让副节点可以查看读取数据

在这里插入图片描述







相关文章:

01、MongoDB -- 下载、安装、配置文件等配置 及 副本集配置

目录 MongoDB -- 下载、安装、配置 及 副本集配置启动命令启动 mongodb 的服务器(单机和副本集)启动单机模式的 mongodb 服务器启动副本集的 3 个副本节点(mongodb 服务器) 启动 mongodb 的客户端 MongoDB 下载MongoDB 安装1、解压…...

uniapp中导入css和scss的区别

在项目中编写了一个基础的公共样式 common.scss文件 想要将其 导入到app.vue文件中 第一次使用的是import url(static/common.scss); 编译直接报错,无法识别这个文件 原因是 使用import url()是CSS中用于导入外部样式表的语法,但它不适用于导入SCS…...

RabbitMQ-TTL/死信队列/延迟队列高级特性

文章目录 TTL死信队列消息成为死信的三种情况队列如何绑定死信交换机 延迟队列RabbitMQ如何实现延迟队列 总结来源B站黑马程序员 TTL TTLTTL(Time To Live):存活时间/过期时间当信息到达存活时间后,还没有被消费,会被自动清除。RabbitMQ可以对消息设置过…...

docker安装php7.4安装(swoole)

容器 docker pull centos:centos7 docker run -dit -p9100:9100 --name“dade” --privilegedtrue centos:centos7 /usr/sbin/init 一、安装前库文件和工具准备 1、首先安装 EPEL 源 yum -y install epel-release2.安装 REMI 源 yum -y install http://rpms.remirepo.net/en…...

身份证识别系统(安卓)

设计内容与要求: 通过手机摄像头捕获身份证信息,将身份证上的姓名、性别、出生年月、身份证号码保存在数据库中。1)所开发Apps软件至少需由3-5个以上功能性界面组成。要求:界面美观整洁、方便应用;可以使用Android原生…...

Python教程——最后一波来喽

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.使用__slots__2. property3.多重继承 4.定制类5.枚举类6.错误处理7.调试8. 文档测试9.单元测试10. 文件读写11. StringIO和BytesIO12. 操作文件和目录13.序列化14…...

学生管理系统(python实现)

新增学生显示学生查找学生删除学生存档到文件 约定好数据的存储格式: 约定把数据保存在和py文件同级目录中,文件名为record.txt 文件内容按照行文本的方式来表示 首先这是一个文本文件,里面包含了很多行,每一行代表一个学生 …...

Java读取文件

读取文件为String 、访问链接直接跳转html 环境:SpringMVC 、前端jsp InputStreamReader FileInputStream fileInputStream new FileInputStream(formatFile.getHtmlpath());InputStreamReader reader new InputStreamReader(fileInputStream, StandardCharsets…...

曾桂华:车载座舱音频体验探究与思考| 演讲嘉宾公布

智能车载音频 I 分论坛将于3月27日同期举办! 我们正站在一个前所未有的科技革新的交汇点上,重塑我们出行体验的变革正在悄然发生。当人工智能的磅礴力量与车载音频相交融,智慧、便捷与未来的探索之旅正式扬帆起航。 在驾驶的旅途中&#xff0…...

面试题HTML+CSS+网络+浏览器篇

文章目录 Css预处理sass less是什么?为什么使用他们怎么转换 less 为 css?重绘和回流是什么http 是什么?有什么特点HTTP 协议和 HTTPS 区别什么是 CSRF 攻击HTML5 新增的内容有哪些Css3 新增的特性flex VS grid清除浮动的方式有哪些&#xff…...

wordpress外贸独立站

WordPress外贸电商主题 简洁实用的wordpress外贸电商主题,适合做外贸跨境的电商公司官网使用。 https://www.jianzhanpress.com/?p5025 华强北面3C数码WordPress外贸模板 电脑周边、3C数码产品行业的官方网站使用,用WordPress外贸模板快速搭建外贸网…...

[python] 构建数据流水线(pipeline)

Plum 是一个用于构建数据流水线(pipeline)的 Python 库,它旨在简化和优化数据处理流程,使得数据流转和处理变得更加清晰、高效和可维护。下面我将更详细地介绍 Plum 的特点、功能和使用方法。 Plum 的主要特点和功能:…...

计算机网络-网络互连和互联网(五)

1.路由器技术NAT: 网络地址翻译,解决IP短缺,路由器内部和外部地址进行转换。静态地址转换:静态NAT(一对一) 静态NAT,内外一对一转换,用于web服务器,ftp服务器等固定IP的…...

【深度学习】Pytorch基础

张量 运算与操作 加减乘除 pytorch中tensor运算逐元素进行,或者一一对应计算 常用操作 典型维度为N X C X H X W,N为图像张数,C为图像通道数,HW为图高宽。 sum() 一般,指定维度,且keepdimTrue该维度上元…...

C++模拟揭秘刘谦魔术,领略数学的魅力

新的一年又开始了,大家新年好呀~。在这我想问大家一个问题,有没有同学看了联欢晚会上刘谦的魔术呢? 这个节目还挺有意思的,它最出彩的不是魔术本身,而是小尼老师“念错咒语”而导致他手里的排没有拼在一起,…...

JAVA语言编写一个方法,两个Long参数传入,使用BigDecimal类,计算相除四舍五入保留2位小数返回百分数。

在Java中,你可以使用BigDecimal类来执行精确的浮点数计算,并且可以指定结果的小数位数。以下是一个方法,它接受两个Long类型的参数,并使用BigDecimal来计算它们的商,然后将结果四舍五入到两位小数,并返回一…...

SQL教学:掌握MySQL数据操作核心技能--DML语句基本操作之“增删改查“

大家好,今天我要给大家分享的是SQL-DML语句教学。DML,即Data Manipulation Language,也就是我们常说的"增 删 改 查",是SQL语言中用于操作数据库中数据的一部分。作为MySQL新手小白,掌握DML语句对于数据库数…...

【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、阶梯式场景&am…...

前端面试 跨域理解

2 实现 2-1 JSONP 实现 2-2 nginx 配置 2-2 vue 开发中 webpack自带跨域 2 -3 下载CORS 插件 或 chrome浏览器配置跨域 2-4 通过iframe 如:aaa.com 中读取bbb.com的localStorage 1)在aaa.com的页面中,在页面中嵌入一个src为bbb.com的iframe&#x…...

JetBrains TeamCity 身份验证绕过漏洞复现(CVE-2024-27198)

0x01 产品简介 JetBrains TeamCity是一款由JetBrains开发的持续集成和持续交付(CI/CD)服务器。它提供了一个功能强大的平台,用于自动化构建、测试和部署软件项目。TeamCity旨在简化团队协作和软件交付流程,提高开发团队的效率和产品质量。 0x02 漏洞概述 JetBrains Team…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...