Centos7部署单机版MongoDB

目录

  • Centos7部署单机版MongoDB
    • MongoDB介绍
      • 数据模型
      • 索引
      • 分布式
      • 高可用性
      • 查询语言
      • 驱动和社区
      • 用途
      • 缺点
    • 下载并解压安装包
    • 创建相关文件夹和文件
    • 编辑mongod.conf文件
    • 启动mongodb
    • 创建管理员用户
    • 终止MongoDB服务
    • 配置自启动服务
      • 关闭SELinux
      • 编辑自启动服务文件
      • mongodb服务命令

Centos7部署单机版MongoDB

MongoDB介绍

MongoDB 是一个开源的 NoSQL 数据库,主要用于高性能、高可用性和易扩展性的应用场景。它是由 C++ 编写的,采用文档导向的数据模型,使用 BSON(Binary JSON)格式来存储数据。MongoDB 与传统的关系数据库(如 MySQL、Oracle 等)有几个主要区别:

数据模型

  • 文档导向:MongoDB 使用一个类似 JSON 的数据格式(BSON)来存储数据,而不是表格。这使得它更为灵活,因为文档可以包含不同的字段和结构。

索引

  • 全面的索引支持:MongoDB 支持多种类型的索引,包括地理空间索引,使得复杂查询更加高效。

分布式

  • 水平可扩展性:通过数据分片(Sharding),MongoDB 可以非常容易地水平扩展,以支持非常大的数据集和高吞吐量的应用。

高可用性

  • 复制和故障恢复:MongoDB 支持自动复制和故障转移,提高了数据的可用性。

查询语言

  • 丰富的查询语言:除了基本的 CRUD 操作,MongoDB 支持丰富的查询操作,包括聚合和文本搜索等。

驱动和社区

  • 多语言支持:有许多语言的驱动程序和库,包括 Java, Python, C#, Node.js 等,这让不同背景的开发者都能容易地使用 MongoDB。

  • 活跃的社区和商业支持:因为是一个开源项目,MongoDB 有一个非常活跃的社区,同时也有商业版本和支持。

用途

MongoDB 广泛应用于各种类型的应用,包括物联网、实时分析、移动应用、内容管理和交付、以及许多其他用例。

缺点

  • 事务支持:虽然近年来 MongoDB 已经增加了对多文档 ACID 事务的支持,但这在某些复杂场景下可能不如关系数据库完善。

  • 数据一致性:默认情况下,MongoDB 使用最终一致性模型,这可能不适用于需要强一致性的应用。

  • 存储空间:由于其灵活的文档模型和索引,MongoDB 可能需要更多的存储空间。

总体而言,MongoDB 是一个非常强大和灵活的数据库选择,适用于需要快速开发和扩展的现代应用。这里使用单机版本的进行演示。

下载并解压安装包

下载地址:

社区版:https://www.mongodb.com/try/download/community

企业版:https://www.mongodb.com/try/download/enterprise

下载企业版tgz免安装包

# 创建文件夹
mkdir /home/soft/mongodb
#解压文件
tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-4.4.5.tgz 

image-20230916111735401

创建相关文件夹和文件

# 创建日志文件夹
mkdir -p /home/soft/mongodb/data/log/
# 创建日志文件
touch /home/soft/mongodb/data/log/mongod.log
# 创建数据存储文件夹
mkdir -p /home/soft/mongodb/data/db
# 内存文件夹,重开机后必须重建此文件夹才能成功启动mongodb
mkdir -p /var/run/mongodb/
# 
touch /var/run/mongodb/mongod.pid

编辑mongod.conf文件

vim /home/soft/mongodb/data/etc/mongod.conf
systemLog:destination: filelogAppend: truepath: /home/soft/mongodb/data/log/mongod.logstorage:dbPath: /home/soft/mongodb/data/dbjournal:enabled: trueprocessManagement:fork: truepidFilePath: /var/run/mongodb/mongod.pidtimeZoneInfo: /usr/share/zoneinfonet:port: 27017bindIp: 0.0.0.0 security:authorization: enabled 

如果不配置security: authorization: enabled,mongodb是不安全的谁都可以访问

启动mongodb

# 进入mongodb文件夹
cd  /home/soft/mongodb/bin
# 手动启动mongodb
./mongod -f /home/soft/mongodb/data/etc/mongod.conf

在启动 mongod的时候遇到error while loading shared libraries: libnetsnmpagent.so.20: cannot open shared object file: No such file or directory

该error 是因为未装net-snmp

直接连接外网的Linux服务器可直接使用:

yum install net-snmp

登录命令

./mongo

image-20230916112456263

创建管理员用户

# 登录mongodb
./mongo --port 27017# 切换到admin库
use admin# 创建超级用户,用root权限可以管理整个集群
db.createUser({"user":"admin",pwd:"admin",roles:["root"]})

终止MongoDB服务

  • 方法一:登录后在MongoDB shell下执行终止指令
# 切换至admin数据库
use admin
# 关闭服务
db.shutdownServer()
  • 方法二:在操作系统下终止服务
ps awx|grep mongodkill pid

配置自启动服务

关闭SELinux

# 检查SELinux是否开启
/usr/sbin/sestatus -v# 编辑文件
vim /etc/selinux/config# 设置配置
SELINUX=disabled

重启机器

reboot

编辑自启动服务文件

vim /usr/lib/systemd/system/mongod.service
[Unit]  
Description=mongodb  
After=network.target remote-fs.target nss-lookup.target  [Service]  
Type=forking  
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/var/run/mongodb/mongod.pid
ExecStart=/home/soft/mongodb/bin/mongod --config /home/soft/mongodb/data/etc/mongod.conf
ExecStop=/home/soft/mongodb/bin/mongod --shutdown --config /home/soft/mongodb/data/etc/mongod.conf  
PrivateTmp=false  [Install]  
WantedBy=multi-user.target

mongodb服务命令

#查询服务状态
systemctl status mongod.service# 启动自启动服务
systemctl enable mongod.service# 开启服务
systemctl start mongod.service# 停止服务
systemctl stop mongod.service# 关闭自启动服务
systemctl disable mongod.service

查询服务状态,看到如下内容便是启动完成了

image-20230916163659278

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

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

相关文章

iOS17.0.2更新修复iPhone 15系列机型数据迁移问题,附新机快速数据迁移办法!

iPhone 15 系列机型已于今日正式发售,为解决iPhone15这些机型出现的数据迁移问题,苹果紧急发布了 iOS 17.0.2 更新,内部版本号为 21A350。 需要注意的是, iOS 17.0.2 更新仅适用于 iPhone 15、iPhone 15 Plus、iPhone 15 Pro 和 …

QT-day2

完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮…

Android 启动优化案例:WebView非预期初始化排查

去年年底做启动优化时,有个比较好玩的 case 给大家分享下,希望大家能从我的分享里 get 到我在做一些问题排查修复时是怎么看上去又low又土又高效的。 1. 现象 在我们使用 Perfetto 进行app 启动过程性能观测时,在 UI 线程发现了一段 几十毫…

ruoyi框架修改左侧菜单样式

菜单效果 ruoyi前端框架左侧的菜单很丑,我们需要修改一下样式,下面直接看效果。 修改代码 1、sidebar.scss .el-menu-item, .el-submenu__title {overflow: hidden !important;text-overflow: ellipsis !important;white-space: nowrap !important;//…

Docker核心原理与实操

第一章、Docker基本概念 1、概念:Docker是一种容器技术,可以解决软件跨环境迁移问题。 2、实现原理:是一个分层复用的文件系统;每一层都是一个独立的软件; …

Linux中创建用户要自己设置密码

因为不知道Linux默认设置的密码,没办法接下来愉快的使用。如下: 而想要新建Linux用户密码,请您执行以下步骤: . 1.打开终端并以root身份登录; 2.输入命令“useradd username",其中username为您新建的用户名; 3.使用命令“passwd usernam…

SDXL prompt 笔记

模型 模型有两个,分别是 stable-diffusion-xl-base-1.0、stable-diffusion-xl-refiner-1.0。 base 模型是用来做文生图,refiner 模型是用来做图生图的。 SDXL 模型之 base、refiner 和 VAE_云水木石的博客-CSDN博客 分辨率 默认是1024*1024&#xf…

Springboot2 Pandas Pyecharts 量子科技专利课程设计大作业

数据集介绍 1.背景 根据《中国科学:信息科学》期刊上的一篇文章,量子通信包括多种协议与应用类型: 基于量子隐形传态与量子存储中继等技术,可实现量子态信息传输,进而构建量子信息网络,已成为当前科研热点&…

GDB的TUI模式(文本界面)

2023年9月22日,周五晚上 今晚在看GDB的官方文档时,发现GDB居然有文本界面模式 TUI (Debugging with GDB) (sourceware.org) GDB开启TUI的条件 GDB的文本界面的开启条件是:操作系统有适当版本的curses库 The TUI mode is supported only on…

ArrayList 的自动扩容机制

触发扩容 ArrayList 是一个数组结构的存储容器,默认情况下,数组的长度是 10 当然我们也可以在构建 ArrayList 对象的时候自己指定初始长度。随着在程序里面不断的往 ArrayList 中添加数据,当添加的数据达到 10 个的时候,ArrayLis…

web:[GXYCTF2019]Ping Ping Ping

题目 点进题目,页面只显示/?ip,没有其他信息 联系到题目名为ping,猜测题目于ping地址有关,先尝试一下 构造payload http://31e941af-c0d7-49c9-a3fe-84cb13d8adae.node4.buuoj.cn:81/?ip127.0.0.1 这里猜测可能为远程命令执行…

Linux(CentOS)安装msf

目录 一、安装MSF 1.1 在线安装 1.2 离线安装 二、安装Postgresql数据库 一、安装MSF 1.1 在线安装 需要挂梯子!挂完梯子需要reboot重启,多试几次就可以,国内网络我试了很久都不行。没条件没梯子的看1.2离线安装 cd /opt curl https://ra…

Cortex-M4之FPU单元

最近在学习实时操作系统,以下是我对学习实时操作系统过程中做的一些笔记。 一、FPU单元 在 Coretex-M4 处理器中有一个可选的单精度 FPU 单元,一般 STM32F429 就有 FPU 单元, 如果使能了 FPU 单元的话就可以使用它来对单精度浮点数进行计算…

【探索Linux世界|中秋特辑】--- 倒计时和进度条的实现与演示

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Linux专栏】🎈 本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌 演示环境&#xff1…

栈的详细实现

一 定义 概念 栈是一种特殊的线性表,只允许在固定的一端进行操作。该端叫做栈顶,相对的另一端叫做栈底。 符合LIFO(后进先出)的规则 关于栈顶的两个操作: 压栈/入栈/进栈:在栈顶部插入数据 出栈:栈顶删…

2023华为杯研究生数学建模C题分析

完整的分析查看文末名片获取! 问题一 在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作品集合之间应有一些交集。但有的交集大了,则…

软件测试缺陷报告详解

【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】 缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report(SBR)或软件问题报告Software Pr…

《动手学深度学习 Pytorch版》 7.5 批量规范化

7.5.1 训练深层网络 训练神经网络的实际问题: 数据预处理的方式会对最终结果产生巨大影响。 训练时,多层感知机的中间层变量可能具有更广的变化范围。 更深层的网络很复杂容易过拟合。 批量规范化对小批量的大小有要求,只有批量大小足够…

智能合约漏洞案例,NeverFall 漏洞复现

智能合约漏洞案例,NeverFall 漏洞复现 1. 漏洞简介 https://twitter.com/BeosinAlert/status/1653619782317662211 2. 相关地址或交易 https://explorer.phalcon.xyz/tx/bsc/0xccf513fa8a8ed762487a0dcfa54aa65c74285de1bc517bd68dbafa2813e4b7cb 攻击交易 攻击…

Python绘制X-bar图和R图 | 统计过程控制SPC

X-bar图和R图是用于统计过程控制(SPC)的两种常用工具,用于监测过程的平均值和范围(变异性)。这些图有助于识别过程中的变化和异常,以便及时采取纠正措施。 **X-bar图(平均值控制图)…