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,表示让副节点可以查看读取数据

在这里插入图片描述







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

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

相关文章

UE5 UE4 不同关卡使用Sequence动画

参考自:关于Datasmith导入流程 | 虚幻引擎文档 (unrealengine.com) 关卡中的Sequence动画序列,包含特定关卡中的Actor的引用。 将同一个Sequcen动画资源放入其他关卡,Sequence无法在新关卡中找到相同的Actor,导致报错。 Sequen…

android Service 与 activity 通信 并不断传数据

注:这只是个Demo 以下载为案例,实现开启下载,暂停下载,下载进度不断发送给activity class DownloadService : Service() {override fun onBind(intent: Intent?): IBinder? {return MyBinder()}inner class MyBinder : Binder…

Java知识点总结(二)

ID生成策略 主键自增id 主键自动增长,不用手工设值、数字型,占用空间小、检索非常有利、有顺序,不会重复,但在迁移旧数据是会出现id冲突 UUID 基于时间,计数器和地址生成32位的id redis生成id 原子性自增,并…

Flask入门一(介绍、Flask安装、Flask运行方式及使用、虚拟环境、调试模式、配置文件、路由系统)

文章目录 一、Flask介绍二、Flask创建和运行1.安装2.快速使用3.Flask小知识4.flask的运行方式 三、Werkzeug介绍四、Jinja2介绍五、Click CLI 介绍六、Flask安装介绍watchdog使用python--dotenv使用(操作环境变量) 七、虚拟环境介绍Mac/linux创建虚拟环境…

Android Gradle开发与应用 (三) : Groovy语法概念与闭包

1. Groovy介绍 Groovy是一种基于Java平台的动态编程语言,与Java是完全兼容,除此之外有很多的语法糖来方便我们开发。Groovy代码能够直接运行在Java虚拟机(JVM)上,也可以被编译成Java字节码文件。 以下是Groovy的一些…

2024.02.29作业

1. TCP模型 server #include "test.h"#define SER_IP "192.168.191.128" #define SER_PORT 9999int main(int argc, char const *argv[]) {int sfd -1;sfd socket(AF_INET, SOCK_STREAM, 0);if (-1 sfd){perror("socket error");return -1;…

Java生成 word报告

Java生成 word报告 一、方案比较二、Apache POI 生成三、FreeMarker 生成 在网上找了好多天将数据库信息导出到 word 中的解决方案,现在将这几天的总结分享一下。总的来说,Java 导出 word 大致有 5 种。 一、方案比较 1. Jacob Jacob 是 Java-COM Bri…

ECMAScript6

课程链接 目录 相关介绍什么是ECMA什么是ECMAScript为什么学习ES6 letconst变量解构赋值模板字符串对象简化写法箭头函数函数参数的默认值rest参数扩展运算符Symbol迭代器生成器函数与调用Promise介绍与基本用法Promise封装读取文件Promise.prototype...then方法Promise.catch…

光影交织:汽车穿越隧道的视觉盛宴

在繁忙的城市中,隧道成为了连接两端的重要通道。而对于汽车来说,穿越隧道不仅是一次简单的空间转移,更是一场融合了视觉、技术与安全的独特体验。 当汽车缓缓驶入隧道,外界的光线逐渐减弱,隧道内部的光线开始发挥作用。…

向量数据库Chroma教程

引言 随着大模型的崛起,数据的海洋愈发浩渺无垠。受限于token的数量,无数的开发者们如同勇敢的航海家,开始在茫茫数据之海中探寻新的路径。他们选择了将浩如烟海的知识、新闻、文献、语料等,通过嵌入算法(embedding)的神秘力量,转化为向量数据,存储在神秘的Chroma向量…

JavaScript基础知识(三)

JavaScript基础知识(三) 一、事件1. 事件绑定2.事件流2.1 事件捕获与事件冒泡 3.事件对象扩展3.1 阻止事件冒泡3.2 事件默认行为 4.事件委托5.事件类型5.1 鼠标事件5.2 键盘事件5.3 触屏事件 二、计时器方法1. setInterval 与 clearInterval2. setTimeou…

【Unity】使用ScriptableObject存储数据

1.为什么要用ScriptableObject? 在游戏开发中,有大量的配置数据需要存储,这个时候就需要ScriptableObject来存储数据了。 很多人会说我可以用json、xml、txt,excel等等 但是你们有没有想过,假设你使用的是json&#x…

LeetCode148.排序链表

题目 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 输入:head [4,2,1,3] 输出:[1,2,3,4] 输入:head [-1,5,3,4,0] 输出:[-1,0,3,4,5] 输入:head [] 输出:[] 思路…

通过GitHub探索Python爬虫技术

1.检索爬取内容案例。 2.找到最近更新的。(最新一般都可以直接运行) 3.选择适合自己的项目,目前测试下面画红圈的是可行的。 4.方便大家查看就把代码粘贴出来了。 #图中画圈一代码 import requests import os import rewhile True:music_id input("请输入歌曲…

openGauss学习笔记-236 openGauss性能调优-SQL调优-Query执行流程

文章目录 openGauss学习笔记-236 openGauss性能调优-SQL调优-Query执行流程236.1 Query执行流程236.1.1 调优手段之统计信息236.1.2 调优手段之GUC参数236.1.3 调优手段之底层存储236.1.4 调优手段之SQL重写 openGauss学习笔记-236 openGauss性能调优-SQL调优-Query执行流程 S…

Java 解决异步 @Async 失效问题

1.问题描述 使用Async进行异步处理时,异步没有生效 2.原因分析 经过排查后发现是因为使用Async的方法没有跨2个Service导致的 错误示例 控制器接口 > 直接调用 custAdminService.importCBuy() 3.解决方案 Controller接口不变,多添加一层Service&a…

【python开发】网络编程(上)

这里写目录标题 一、必备基础(一)网络架构1、交换机2、路由器3、三层交换机4、小型企业基础网络架构5、家庭网络架构6、互联网 (二)网络核心词汇1、子网掩码和IP2、DHCP3、内网和公网IP4、云服务器5、端口6、域名 二、网络编程案例…

大数据分析课----实时更新

1:Anaconda3 windows 安装 : 去官网下载; 然后安装好直接点next 点 i agree; 自己的电脑选第一个;学校的话选All Users ; 选择自己存放的目录; 选前三个; 安装即可; 一直…

UE4 Niagara 关卡3.4官方案例解析

Texture sampling is only supported on the GPU at the moment.(纹理采样目前仅在GPU上受支持) 效果:textures can be referenced within GPU particle systems。this demo maps a texture to a grid of particles(纹理可以在GPU粒子系统中被引用这个演…

牛客网C++专项题目整理(1)

1. 若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句错误的是 1.p s; 2.p k; 3.p s[0]; 4.k s; 答案:124 char s[3][10] s 是数组指针,类型为char (*)[3],所指向的每个数组长度为10; char (*k)[3] k是一个数组指针&a…