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

news2024/12/26 9:18:55

目录

  • 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\db
  journal:
    enabled: true

# 指定与日志有关的信息,把日志输出到file文件夹
systemLog:
  destination: file
  quiet: true
  logAppend: false
  path: E:\install\mongodb\mongodb-4.2.25\logs\mongod.log
#配置与网络有关的信息, mongodb 默认端口 27017
net:
  port: 27017
  bindIp: 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.coloradmin.cn/o/1482006.html

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

相关文章

Java 封装阿里云 oss 上传图片时抽取配置到 application 使用 @Value 获取值

Java 封装阿里云 oss 上传图片时抽取配置到 application 使用 Value 获取值 application .yml 配置 alioss: # 阿里云配置endpoint: "https://oss-cn-beijing.aliyuncs.com" # Endpoint以华东1(杭州)为例,其它Region请按实际…

ES系列之Logstash实战入门

概述 作为ELK技术栈一员,Logstash用于将数据采集到ES,通过简单配置就能把各种外部数据采集到索引中进行保存,可提高数据采集的效率。 原理 数据源提供的数据进入Logstash的管道后需要经过3个阶段: input:负责抽取数…

AI新工具(20240301) Ideogram; Image to Music Generator等

1: Ideogram 全新的多模态生图AI工具,以其优秀的文字渲染能力和生图能力受到业界瞩目 Ideogram是一个创新的AI工具,它通过在生成的图片中自然地整合文字,解决了生图AI领域长期存在的一个难题。这个工具特别擅长将文本以极其自然和协调的方式…

gRPC知识归档

文章目录 gRPC知识归档gRPC原理什么是gRPCgRPC的特性gRPC支持语言gRPC使用场景gRPC设计的动机和原则 数据封装和数据传输问题网络传输中的内容封装和数据体积问题JSONProtobuf(微服务之间的服务器调用,一般采用二进制序列化,比如protobuf&…

ChatGPT与GEE+ENVI+python高光谱,多光谱等成像遥感数据处理技术

原文链接:ChatGPT与GEEENVIpython高光谱,多光谱等成像遥感技术 第一遥感科学与AI基础 一:遥感科学的基本原理和历史 从摄影侦察到卫星图像 遥感的基本原理 遥感的典型应用 最新进展和未来趋势 二:ChatGPT 什么是ChatGPT&a…

数字口岸再升级:广西二期项目助力口岸通关提速运营增效!

在数字口岸相关政策的引领下,广西与RCEP其他成员国进出口规模有力攀升,大力推动了广西向海经济,临港产业集群不断壮大,大宗商品贸易快速增长。据海关统计,2023年,广西进出口总值6936.5亿元人民币&#xff0…

k8s中容器的调度与创建:CRI,cgroup

container调度与创建 选自:K8s、CRI与container - packy的文章 - 知乎 https://zhuanlan.zhihu.com/p/102897620 Cgroup创建: cgexec -g cpu,memory:$UUID \ > unshare -uinpUrf --mount-proc \ > sh -c "/bin/hostname $UUID &…

关于vue中关于eslint报错的问题

1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题, 解决思路: 在项目根目录下新建一个.prettierrc.json文件 { “tabWidth”: 2,“useTabs”: false,“singleQuote”: true,“semi”: false} 2 关于报错代码的时候 出现尾随逗号报错…

MySQL 多表查询 连接查询 外连接

介绍 MySQL 多表查询 连接查询 内连接 外连接分为两种,左外和右外连接, 左外:相当于查询表1(左表)的所有数据 包含 表1和表2交集部分的数据,完全包含左表的数据 右外:相当于查询表2(右表)的所有数据 包含 表1和表2交集部分的数据…

《PySide6/PyQt6快速开发与实战》P111被省略了的案例

编程环境:Fedora, QtCreator 见代码: # This Python file uses the following encoding: utf-8 import sys from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget from PySide6.QtGui import QPalette #, QColo…

Scratch 第十三课-飞机大战游戏

第十三课-飞机大战游戏 学习目标 这节课我们做一款大家都爱玩的飞机大战游戏,学习重点: 如何导入外部角色如何让飞机发射子弹鼠标控制角色移动 程序设计 程序分析 : 飞机大战游戏相信很多小朋友都玩过,我方飞机在下方&#xf…

双通道音频功率放大电路,外接元件少, 通道分离性好,3V 的低压下可正常使用——D2025

D2025 为立体声音频功率放大集成电路,适用于各类袖珍或便携式立体声 收录机中作功率放放大器。 D2025 采用 DIP16 封装形式。 主要特点:  适用于立体声或 BTL 工作模式  外接元件少  通道分离性好  电源电压范围宽(3V~12V &#xff…

Unity3d Shader篇(十)— 渐变纹理

文章目录 前言一、什么是Unlity渐变纹理Shader?1. 渐变纹理Shader工作原理2. 渐变纹理?3. 渐变纹理的优缺点优点:缺点: 4. 渐变纹理例图 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函…

【Flutter 面试题】解释 Flutter的热重载(Hot Reload)功能

【Flutter 面试题】解释 Flutter的热重载(Hot Reload)功能 文章目录 写在前面解答补充说明 写在前面 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2…

JVM运行时数据区——本地方法接口和本地方法栈

1、本地方法接口 虽然Java语言使用非常广泛,但是有些事务Java仍然无法处理。例如线程相关的功能,在线程类当中就有很多本地方法接口。那么Java如何来处理这些问题呢?Java设计师提出了一种解决方案就是本地方法接口。本贴将会讲解本地方法接口…

spark sql 转换字符串数组成多列结构

背景 在平时使用spark sql分析数据时,特别是分析从mysql的表入仓的hive表时,我们会经常和字符串数组的列打交道,而且这种情况下我们一般都需要把一行字符串数组的行数据转成多列的形式,我们看下怎么写这个sql spark sql 转换字符…

idea中maven配置(一次成功,全部细节都有)

写这篇文章的原因是maven的配置很简单,但是也很容易出错,我连配了两台电脑的maven出现了各种小错误,参考了以下两篇博文IDEA配置Maven教程(超详细版~)_idea maven配置教程-CSDN博客 一次包会——最新IDEA配置Maven指南&#xff0…

(学习日记)2024.03.01:UCOSIII第三节

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

ABAP - OOALV 单元格 F4实现

方式一:使用标准数据表,FIELDCAT字段设置值 gs_fieldcat-ref_table X. "列可编辑gs_fieldcat-ref_table MARA. "F4 参考表gs_fieldcat-ref_field MATNR. "F4 参考字段 方式二.使用自定义数据 ,实现效果如下图…

git根据文件改动将文件自动添加到缓冲区

你需要修改以下脚本中的 use_cca: false 部分 #!/bin/bash# 获取所有已修改但未暂存的文件 files$(git diff --name-only)for file in $files; do# 检查文件中是否存在"use_cca: false"if grep -q "use_cca: false" "$file"; thenecho "Ad…