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
创建相关文件夹和文件
# 创建日志文件夹
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
创建管理员用户
# 登录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
查询服务状态,看到如下内容便是启动完成了
相关文章:

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…...

python 学习笔记(6)—— Flask 、MySql
目录 Flask 1、起步 2、渲染项目的首页 3、处理无参数的 GET 请求 4、处理有 query 参数的 GET 请求 6、处理 params 参数的 get 请求 6、处理 application/json 类型请求体的 POST 请求 7、根据参数渲染模板页面 8、上传文件 数据库操作(mysql࿰…...
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 怎么办?
问题描述: 原因是;CATALINA_BASE里面没有相关的文件配置。而之前学习IDEA的时候,把这个文件的位置改变了。导致,最后输出IDEA的时候,不会把日志也打印出来。 检查IDEA配置; D:\work_soft\tomcat_user\Tomcat10.0\bin 在此目录下&…...
蛇形填数 rust解法
蛇形填数。 在nn方阵里填入1,2,…,nn,要求填成蛇形。例如,n=4时方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 解法如下: use std::io;fn main() {let mut buf String::new();…...
一文探索SD-WAN技术进阶后与MPLS的区别
在网络通信领域,随着云计算和大数据等新兴技术的快速发展,企业对于网络的可靠性、安全性以及带宽的需求越来越高。 SD-WAN(软件定义广域网)和MPLS(多协议标签交换)是两种不同的网络连接技术,它们…...

RocketMq(四)消息分类
一、普通消息 1、同步发送消息:指的是Producer发出⼀条消息后,会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高,但消息发送效率低。 二、顺序消息 三、延时消息...
ip地址怎么改网速快
在当今高度依赖互联网的时代,快速稳定的网络连接对于人们的生活和工作至关重要。然而,有时我们可能会遇到网络速度缓慢的问题。虽然更改IP地址并不能直接影响网络速度,但它可以成为改善网络连接的一种策略之一。虎观代理小二二将探讨如何通过…...

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

main函数中两个参数的作用
一般我们在使用C语言时不太用到main函数自带的参数,因此最常见的main函数就像下面这样。 int main() {...... }上面这种main函数是省略了其形参的,C语言中规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv,其中&…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...