当前位置: 首页 > 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…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...