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

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

相关文章:

Centos7部署单机版MongoDB

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

Docker实战-第一章欢迎来到Docker世界

Docker基础 什么是Docker docker是包括一个命令行程序、后台守护进程和一组远程服务,它简化了安装、运行、发布和删除软件的工作。docker实现的基础是UNIX的容器技术。所以在docker出世之前已经有容器的概念,而且像谷歌一类公司也在探索自己的容器&…...

初识C语言——详细入门一(系统性学习day4)

目录 前言 一、C语言简单介绍、特点、基本构成 简单介绍: 特点: 基本构成: 二、认识C语言程序 标准格式: 简单C程序: 三、基本构成分类详细介绍 (1)关键字 (2&#xf…...

python 学习笔记(6)—— Flask 、MySql

目录 Flask 1、起步 2、渲染项目的首页 3、处理无参数的 GET 请求 4、处理有 query 参数的 GET 请求 6、处理 params 参数的 get 请求 6、处理 application/json 类型请求体的 POST 请求 7、根据参数渲染模板页面 8、上传文件 数据库操作(mysql&#xff0…...

Deepin下vsftp服务安装配置虚拟用户

1. 系统环境 Deepin20.9 2. 在线安装 # apt install -y vsftp //安装ftp服务软件 # apt install -y db-util //安装虚拟用户密码库处理软件 3. 离线安装 3.1 下载依赖包 # apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --n…...

OpenpyxlWriter‘ object has no attribute ‘save‘

问题 将实验结果保存为EXCEL,报错“OpenpyxlWriter‘ object has no attribute ‘save‘” data_df pd.DataFrame(Experiment_result) #关键1,将ndarray格式转换为DataFrame writer pd.ExcelWriter(./results/ args.model_num _args.data_name …...

ES6(三)

文章目录 Promise概念作用回调地狱Promise使用对象的状态Promise.allPromise.race Generator 函数概念基本语法异步流程 Class语法类的写法getter与setter静态属性和静态方法继承模块化 Promise 概念 Promise 是异步编程的一种解决方案,比传统的解决方案回调函数,…...

Android 数据库封装(SQLite)

Android 数据库操作(SQLite) Android 数据库操作(SQLite)动态预览使用初始化生成表实体类插入数据批量插入删除数据删除全部修改数据查找(列表)查找(单条)条件查找(列表&…...

Git从入门到起飞(详细)

Git从入门到起飞 Git从入门到起飞什么是Git?使用git前提(注册git)下载Git在Windows上安装Git在macOS上安装Git在Linux上安装Git 配置Git配置全局用户信息配置文本编辑器 创建第一个Git仓库初始化仓库拉取代码添加文件到仓库提交更改推送 Git基本操作查看提交历史比较…...

R读写parquet文件

什么是parquet文件 Apache Parquet是一个开源的,列存储的数据文件格式。 https://parquet.apache.org/ 在R里面,我们可以通过arrow包来读写它。 我们先安装一下arrow包,并加载它。 install.packages("arrow") library(arrow)读写…...

Java21 LTS版本

一、前言 除了众所周知的 JEP 之外,Java 21 还有更多内容。首先请确认 java 版本: $ java -version openjdk version "21" 2023-09-19 OpenJDK Runtime Environment (build 2135-2513) OpenJDK 64-Bit Server VM (build 2135-2513, mixed mo…...

【性能优化】虚拟懒加载(下拉滚动加载长列表)element-puls+el-table

目录 前言一、卡顿的原因?二、解决1、滚动懒加载2.官方 总结 前言 提示:这里可以添加本文要记录的大概内容: 在element-plus中,如果数据超过1k,就会感觉到明显的卡顿,应该是渲染的卡顿吧。反正我在请求回…...

一对多映射处理

8.3.1 、collection /** * 根据部门id查新部门以及部门中的员工信息 * param did * return */ Dept getDeptEmpByDid(Param("did") int did);<resultMap id"deptEmpMap" type"Dept"> <id property"did" column"did&quo…...

关于IDEA没有显示日志输出?IDEA控制台没有显示Tomcat Localhost Log和Catalina Log 怎么办?

问题描述&#xff1a; 原因是;CATALINA_BASE里面没有相关的文件配置。而之前学习IDEA的时候&#xff0c;把这个文件的位置改变了。导致&#xff0c;最后输出IDEA的时候&#xff0c;不会把日志也打印出来。 检查IDEA配置; D:\work_soft\tomcat_user\Tomcat10.0\bin 在此目录下&…...

蛇形填数 rust解法

蛇形填数。 在nn方阵里填入1&#xff0c;2&#xff0c;…&#xff0c;nn&#xff0c;要求填成蛇形。例如&#xff0c;n&#xff1d;4时方阵为&#xff1a; 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 解法如下&#xff1a; use std::io;fn main() {let mut buf String::new();…...

一文探索SD-WAN技术进阶后与MPLS的区别

在网络通信领域&#xff0c;随着云计算和大数据等新兴技术的快速发展&#xff0c;企业对于网络的可靠性、安全性以及带宽的需求越来越高。 SD-WAN&#xff08;软件定义广域网&#xff09;和MPLS&#xff08;多协议标签交换&#xff09;是两种不同的网络连接技术&#xff0c;它们…...

RocketMq(四)消息分类

一、普通消息 1、同步发送消息&#xff1a;指的是Producer发出⼀条消息后&#xff0c;会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高&#xff0c;但消息发送效率低。 二、顺序消息 三、延时消息...

ip地址怎么改网速快

在当今高度依赖互联网的时代&#xff0c;快速稳定的网络连接对于人们的生活和工作至关重要。然而&#xff0c;有时我们可能会遇到网络速度缓慢的问题。虽然更改IP地址并不能直接影响网络速度&#xff0c;但它可以成为改善网络连接的一种策略之一。虎观代理小二二将探讨如何通过…...

植物大战僵尸各种僵尸攻略(四)

前言 此文章为“植物大战僵尸”专栏中的011刊&#xff08;2023年9月第十刊&#xff09;&#xff0c;欢迎订阅。版权所有。 注意&#xff1a; 1.本博客适用于pvz无名版&#xff1b; 2.pvz指植物大战僵尸&#xff08;Plants VS Zonbies)&#xff1b; 3.本文以耗费低做标准&am…...

main函数中两个参数的作用

一般我们在使用C语言时不太用到main函数自带的参数&#xff0c;因此最常见的main函数就像下面这样。 int main() {...... }上面这种main函数是省略了其形参的&#xff0c;C语言中规定main函数的参数只能有两个&#xff0c;习惯上这两个参数写为argc和argv&#xff0c;其中&…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】&#xff0c;这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

项目进度管理软件是什么?项目进度管理软件有哪些核心功能?

无论是建筑施工、软件开发&#xff0c;还是市场营销活动&#xff0c;项目往往涉及多个团队、大量资源和严格的时间表。如果没有一个系统化的工具来跟踪和管理这些元素&#xff0c;项目很容易陷入混乱&#xff0c;导致进度延误、成本超支&#xff0c;甚至失败。 项目进度管理软…...