Linux系统安装部署MongoDB完整教程(图文详解)
前言:本期给大家分享一下目前最新Linux系统安装部署MongoDB完整教程,我的服务器采用的是Centos7,在部署之前我重装了我的服务器,目的是为了干净整洁的给大家演示我是如何一步步的操作的,整体部署还是挺简洁,这边做一个笔记分享!
博主的其他部署教程:
1、Jekins部署前后端分离项目:Jenkins部署前后端分离项目最全图文教程(手把手教学)
2、Docker部署前后端分离项目:手把手通过Docker部署前后端分离项目(亲测可用)
3、Linux系统部署Tomcat:Linux系统部署Tomcat详细教程(图文讲解)
4、Linux系统部署Nginx:Linux系统部署Nginx详细教程(图文讲解)
5、Linux系统配置Maven:Linux系统配置Maven环境详细教程(图文讲解)
6、Linux系统配置Node.js:Linux系统配置Node.js环境详细教程(图文讲解)
7、Linux系统安装部署MySQL:Linux系统安装部署MySQL完整教程(图文详解)
8、Linux系统安装部署Redis:Linux系统安装部署Redis完整教程(图文详解)
9、Linux系统安装部署Jenkins:Linux系统安装部署Jenkins详细教程(图文讲解)
10、宝塔面板部署前后端分离项目:手把手教学使用宝塔面板部署前后端分离项目(全面详细)
目录
一、踩坑记录
二、准备MongoDB安装包
三、安装MongoDB
四、配置MongoDB
五、启动MongoDB
六、配置管理员用户
七、配置环境变量
八、配置软链
九、设置开机自启动
十、总结
一、踩坑记录
启动MongoDB完整报错:
2023-08-02T19:30:47.752+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2023-08-02T19:30:47.758+0800 W ASIO [main] No TransportLayer configured during NetworkInterface startup
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] MongoDB starting : pid=32625 port=27017 dbpath=/usr/local/mongoDB/mongoDBServer/data 64-bit host=ecs-132947
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] db version v4.2.24
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] git version: 5e4ec1d24431fcdd28b579a024c5c801b8cde4e2
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] allocator: tcmalloc
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] modules: none
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] build environment:
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] distmod: rhel70
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] distarch: x86_64
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] target_arch: x86_64
2023-08-02T19:30:47.758+0800 I CONTROL [initandlisten] options: { config: "/usr/local/mongoDB/mongoDBServer/etc/mongodb.conf", net: { bindIp: "0.0.0.0", port: 27017 }, processManagement: { fork: true }, security: { authorization: "disabled" }, storage: { dbPath: "/usr/local/mongoDB/mongoDBServer/data", engine: "mmapv1", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/usr/local/mongoDB/mongoDBServer/log/mongodb.log", quiet: true } }
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten]
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten] ** WARNING: You have explicitly specified 'MMAPV1' storage engine in your
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten] ** config file or as a command line option. Support for the MMAPV1
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten] ** storage engine has been deprecated and will be removed in
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten] ** version 4.2. See Release Notes for MongoDB 4.0 — MongoDB Manual
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten]
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten] exception in initAndListen: Location18656: Cannot start server with an unknown storage engine: mmapv1, terminating
2023-08-02T19:30:47.759+0800 I REPL [initandlisten] Stepping down the ReplicationCoordinator for shutdown, waitTime: 10000ms
2023-08-02T19:30:47.759+0800 I SHARDING [initandlisten] Shutting down the WaitForMajorityService
2023-08-02T19:30:47.759+0800 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2023-08-02T19:30:47.759+0800 I NETWORK [initandlisten] Shutting down the global connection pool
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten] Shutting down the FlowControlTicketholder
2023-08-02T19:30:47.759+0800 I - [initandlisten] Stopping further Flow Control ticket acquisitions.
2023-08-02T19:30:47.759+0800 I INDEX [initandlisten] Shutting down the IndexBuildsCoordinator
2023-08-02T19:30:47.759+0800 I NETWORK [initandlisten] Shutting down the ReplicaSetMonitor
2023-08-02T19:30:47.759+0800 I CONTROL [initandlisten] Shutting down free monitoring
2023-08-02T19:30:47.759+0800 I FTDC [initandlisten] Shutting down full-time data capture
2023-08-02T19:30:47.759+0800 I STORAGE [initandlisten] Shutting down the HealthLog
2023-08-02T19:30:47.759+0800 I - [initandlisten] Dropping the scope cache for shutdown
2023-08-02T19:30:47.759+0800 I CONTROL [initandlisten] now exiting
2023-08-02T19:30:47.759+0800 I CONTROL [initandlisten] shutting down with code:100
这是因为MongoDB在3.2版本之前采用的是MMAPV1存储引擎
1、3.0版本(2015年)之前,MongoDB只支持MMAPv1存储引擎。
2、3.2版本(2016年)中,引入了新的WiredTiger存储引擎,但MMAPv1仍然是默认的存储引擎。
3、3.4版本(2017年)中,正式将WiredTiger作为默认的存储引擎。
4、4.0版本(2018年)中,已经完全删除了MMAPv1存储引擎的支持。
修改mongodb.conf文件中为如下代码即可
storageEngine=wiredTiger
二、准备MongoDB安装包
这是官网下载地址:Download MongoDB Community Server | MongoDB

版本我这边选择的是4.2.24,平台选择CentOS7,压缩包格式选择tgz格式,最后点击下载 。
三、安装MongoDB
1、进入指定目录
cd /usr/local
2、创建一个新文件夹用于存放MongoDB安装包
mkdir mongoDB

3、将下载好的压缩包上传到此文件夹下(Xftp)

4、进入到新建好的目录
cd mongoDB
5、解压压缩包
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.24.tgz
6、重命名文件夹
mv mongodb-linux-x86_64-rhel70-4.2.24 mongoDBServer

这样就算安装好了。
四、配置MongoDB
1、进入重命名后的文件夹
cd mongoDBServer
2、创建三个分别存放数据、日志和配置的文件夹
mkdir data
mkdir log
mkdir etc

3、进入etc文件夹
cd etc
4、创建mongodb.conf配置文件
vim mongodb.conf
5、复制如下代码:
注:dbpath和logpath需要替换成自己的路径,复制的时候可能dbpath会突然变成th,记得检查一下有没有复制错了!
dbpath=/usr/local/mongoDB/mongoDBServer/data
logpath=/usr/local/mongoDB/mongoDBServer/log/mongodb.log
logappend=true
quiet=true
port=27017
fork=true
auth=false
journal=true
bind_ip=0.0.0.0
storageEngine=wiredTiger
| 参数 | 解释 |
|---|---|
| dbpath=/usr/local/mongoDB/mongoDBServer/data | 这个指定了MongoDB的数据文件存放的路径,MongoDB把数据文件存储在dbpath目录下。 |
| logpath=/usr/local/mongoDB/mongoDBServer/log/mongodb.log | 这个指定了MongoDB的日志文件路径。 |
| logappend=true | 这个设置为true的话,日志会以追加的方式写入日志文件,默认就是true。 |
| quiet=true | 这个设置为true的话,可以过滤一些无用的日志信息,比如每次连接的信息等。 |
| port=27017 | 这个是指定MongoDB监听的端口,默认是27017。 |
| fork=true | 这个设置为true的话,MongoDB会以守护进程的方式运行。 |
| auth=false | 这个是是否需要认证,默认是不需要认证就可以访问的。 |
| journal=true | 这个是设置是否开启日志功能,默认是true,开启jourmal可以提高数据安全性。 |
| bind_ip=0.0.0.0 | 这个是设置可以监听和访问的IP,0.0.0.0表示可以监听所有网络接口的IP请求。 |
| storageEngine=wiredTiger | 这个指定存储引擎,默认是wiredTiger |
6、按Esc键退出编辑模式,输入:wq保存并退出vim编辑器即可
五、启动MongoDB
1、进入MongoDB的bin目录下

2、启动MongoDB
注:路径需要替换成自己的!
./mongod --config /usr/local/mongoDB/mongoDBServer/etc/mongodb.conf

启动成功!
六、配置管理员用户
1、进入MongoDB
./mongo

2、使用管理员权限
use admin

3、创建用户
用户名为:htt
密码为:123456
db.createUser( {user: "htt",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});

4、查看已经存在的用户
show users

5、关闭MongoDB服务
db.shutdownServer()
6、不关闭服务直接退出(执行这个命令,因为下面还需要用到这个服务)
exit
七、配置环境变量
1、编辑profile文件
vim /etc/profile
2、按i进入编辑模式
3、改为自己的安装路径
export PATH=$PATH:/usr/local/mongoDB/mongoDBServer/bin

4、按Esc键退出编辑模式,输入:wq保存并退出vim编辑器即可
5、让配置文件生效
source /etc/profile
6、查看mongoDB基本信息
mongo --version

这样就配置成功了!
八、配置软链
1、将mongo路径软链到/usr/bin路径下,方便随处执行mongo命令
ln -s /usr/local/mongoDB/mongoDBServer/bin/mongo /usr/bin/mongo
2、进入MongoDB(前提是MongoDB服务必须开启,如果执行了db.shutdownServer()将无法进入)
mongo

这样其实软链就算配置成功了,下面我们尝试使用刚才配置好的用户信息登录一下!
3、使用管理员权限
use admin
4、使用刚才创建的用户名密码进行验证
db.auth('htt','123456')

返回1则表示成功!
5、退出
exit
九、设置开机自启动
1、创建mongodb.service服务文件
vim /lib/systemd/system/mongodb.service
2、写入如下内容
注: ExecStart和ExecStop要替换成自己的安装路径,同样注意别复制错了,第一次复制可能[Unit]变成了t],自己仔细检查一下!
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target [Service]
Type=forking
ExecStart=/usr/local/mongoDB/mongoDBServer/bin/mongod --config /usr/local/mongoDB/mongoDBServer/etc/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongoDB/mongoDBServer/bin/mongod --shutdown --config /usr/local/mongoDB/mongoDBServer/etc/mongodb.confPrivateTmp=true [Install]
WantedBy=multi-user.target
3、按Esc键退出编辑模式,输入:wq保存并退出vim编辑器即可
4、重新加载配置
systemctl daemon-reload
5、进入创建好的目录
cd /lib/systemd/system/
6、赋予权限
chmod 755 mongodb.service
7、设置开机自启动
systemctl enable mongodb.service

到这一步就算是可以了,下面为补充的2个命令。
8、启动服务(这边我们服务已经启动过了,无需再启动)
systemctl start mongodb.service
9、关闭服务
systemctl stop mongodb.service
10、重启服务器以后,输入如下命令(上面配置的软链就是这个好处)
mongo

大功告成!
十、总结
以上就是我使用Linux安装部署MongoDB数据库的完整教程,如有问题,欢迎评论区讨论!
相关文章:
Linux系统安装部署MongoDB完整教程(图文详解)
前言:本期给大家分享一下目前最新Linux系统安装部署MongoDB完整教程,我的服务器采用的是Centos7,在部署之前我重装了我的服务器,目的是为了干净整洁的给大家演示我是如何一步步的操作的,整体部署还是挺简洁,…...
CSS图片放到<div>里面,自适应宽高全部显示,点击图片跳到新页面预览,点击旋转按钮图片可旋转
有一个需求是图片放到一个固定宽高的<div>里面,不管是横图还是竖图,都要全部显示出来并且保持图片的长宽比例不变形,点击图片可以跳到一个新页面预览,代码如下: <!DOCTYPE html> <html> <head>…...
二阶段web基础与http协议
dns与域名 网络是基于tcp/ip协议进行通信和连接的 应用层-----传输层-----网络层-----数据链路层-----物理层 ip地址,每一台主机都有一个唯一的地址标识(固定的ip地址) 1.区分用户和计算机 2.通信 ip地址的问题在于32位二进制数组成的&…...
SpringBoot+Freemark根据html模板动态导出PDF
SpringBootFreemark根据html模板导出PDF 1、引入maven2、两个工具类2.1 test.html模板2.2 test.html模板中的Freemark语法 3、controller导出pdf 1、引入maven 导出pdf的一些必要jar包 <dependency><groupId>org.projectlombok</groupId><artifactId>…...
XPath数据提取与贴吧爬虫应用示例
XPath数据提取与贴吧爬虫应用示例 XpathXpath概述Xpath Helper插件 XPath语法基本语法查找特定节点选取未知节点选取若干路径 lxml模块使用说明使用示例 百度贴吧爬虫 Xpath Xpath概述 XPath(XML Path Language)是一种用于在XML文档中定位和选择节点的语…...
字符串匹配-KMP算法
KMP算法,字符串匹配算法,给定一个主串S,和一个字串T,返回字串T与之S匹配的数组下标。 在学KMP算法之前,对于两个字符串,主串S,和字串T,我们根据暴力匹配,定义两个指针,i指…...
Java面向对象之UML类图
UML类图 表示 public 类型, - 表示 private 类型,#表示protected类型方法的写法:方法的类型(、-) 方法名(参数名: 参数类型):返回值类型...
【机器学习】西瓜书学习心得及课后习题参考答案—第4章决策树
这一章学起来较为简单,也比较好理解。 4.1基本流程——介绍了决策树的一个基本的流程。叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集&a…...
2023.8.2
2022河南萌新联赛第(三)场:河南大学\神奇数字.cpp //题意:给定三个正整数a b c,求x满足满足abc同余x的个数。 //这个考虑同余的性质,就是两个数的差去取模为0的数肯定是这两个数的同余数,。因此我们计算三个数两两之…...
windows运行窗口常用快捷键命令
winr打开运行窗口,然后输入快捷命令:(当然utools和win11搜索也挺好用的) cmd : 命令行窗口(命令提示符窗口、cmd窗口)regedit : 注册表mspaint : 画图工具services.msc : 本地服务设置(比如查看mysql服务是否启动成功)devmgmt.ms…...
HDFS的QJM方案
Quorum Journal Manager仲裁日志管理器 介绍主备切换,脑裂问题解决---ZKFailoverController(zkfc)主备切换,脑裂问题解决-- Fencing(隔离)机制主备数据状态同步问题解决 HA集群搭建集群基础环境准备HA集群规…...
安装win版本的neo4j(2023最新版本)
安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量(也可选择直接点击快捷方式,就可以不用配环境了)3. 启动neo4j 测试代码遇到的问题及解决(每次环境都太离谱了,各种问题)连接…...
ChatGPT结合知识图谱构建医疗问答应用 (二) - 构建问答流程
一、ChatGPT结合知识图谱 上篇文章对医疗数据集进行了整理,并写入了知识图谱中,本篇文章将结合 ChatGPT 构建基于知识图谱的问答应用。 下面是上篇文章的地址: ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱 这里实现问答的流程…...
聊天系统登录后端实现
定义返回的数据格式 # Restful API from flask import jsonifyclass HttpCode(object):# 响应正常ok 200# 没有登陆错误unloginerror 401# 没有权限错误permissionerror 403# 客户端参数错误paramserror 400# 服务器错误servererror 500def _restful_result(code, messa…...
Ajax笔记_01(知识点、包含代码和详细解析)
Ajax_01笔记 前置知识点 在JavaScript中 问题1:将数组转为字符串,以及字符串转为数组的方式。 问题2、将对象转为字符串,以及字符串转为对象的方法。 方法: 问题1: 将数组转为字符串可以使用 join() 方法。例如&…...
Eureka 学习笔记2:EurekaClient
版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口,拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能: 获取注册表根据应用名称获取应用根据实例 id 获取实例信息 public interface LookupService<…...
Spring引入并启用log4j日志框架-----Spring框架
<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…...
Redis实现延时队列
缓存队列延时向接口报工,并支持多实例部署。 引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-data</artifactId><version>3.17.4</version> </dependency> 注入RedisClient …...
无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
目录 背景 思路 新建两个函数A和B,函数 A处理字典数据,被调用后,判断传递的参数,如果参数为字典,则调用自身; 如果是列表或者元组,则调用列表处理函数B; 函数 B处理列表&#x…...
信息学奥赛一本通——1180:分数线划定
文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】【提示】 AC代码 题目 【题目描述】 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入…...
Dash.js终极指南:5分钟掌握专业级流媒体播放技术
Dash.js终极指南:5分钟掌握专业级流媒体播放技术 【免费下载链接】dash.js A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers. 项目地址: https://gitcode.com/gh_mirrors/da/dash.js Dash.js是一个…...
别再浪费手机性能了!Blackmagic Camera 搭配 LUT 滤镜包,解锁夜景和人物拍摄的隐藏技巧
Blackmagic Camera 与 LUT 滤镜包:解锁手机摄影的隐藏潜力 手机摄影早已不再是简单的记录工具,而是可以创作出专业级影像的利器。对于追求画质的摄影爱好者和小型工作室来说,Blackmagic Camera 这款专业级拍摄应用配合精心调校的 LUT 滤镜包&…...
小红书数据采集实战:5个Python技巧让爬虫更智能
小红书数据采集实战:5个Python技巧让爬虫更智能 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 在小红书这个拥有数亿用户的社交电商平台上,海量的用…...
腾讯云轻量服务器+宝塔面板:新手零代码搭建个人网站的保姆级避坑指南
腾讯云轻量服务器宝塔面板:新手零代码搭建个人网站的保姆级避坑指南 你是否曾经想过拥有一个属于自己的网站,却因为不懂代码和服务器运维而望而却步?现在,即使你没有任何技术背景,也能轻松实现这个梦想。本文将带你一步…...
C语言基础:LiuJuan20260223Zimage嵌入式开发入门
C语言基础:LiuJuan20260223Zimage嵌入式开发入门 1. 学习目标与前置知识 如果你是刚开始接触嵌入式开发的C语言初学者,这篇文章就是为你准备的。我们将从最基础的C语言语法开始,一步步带你了解如何在嵌入式环境中使用C语言进行开发。不需要…...
BG3 Mod Manager:智能模组管理工具让博德之门3模组体验升级
BG3 Mod Manager:智能模组管理工具让博德之门3模组体验升级 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 博德之门3作为一款备受欢迎的…...
Phi-3-mini-4k-instruct新手入门:Ollama部署详解,从安装到第一个对话
Phi-3-mini-4k-instruct新手入门:Ollama部署详解,从安装到第一个对话 1. 认识Phi-3-mini-4k-instruct:轻量级AI助手 Phi-3-mini-4k-instruct是一个仅有38亿参数的轻量级语言模型,由微软团队开发。虽然体积小巧,但它在…...
编程小白的第一课:用快马AI零代码基础创建个人技能展示网站
作为一个刚接触编程的新手,我最近尝试用InsCode(快马)平台做了一个个人技能展示网站。整个过程比我预想的简单很多,特别适合零基础的同学上手。下面分享我的具体实现过程和心得: 项目规划与结构设计 刚开始完全不懂代码结构,但平台…...
4款降AI率工具实测横评:最便宜和最贵的效果差多少?
花了几百块,测了一圈,现在把结果告诉你。 降AI率工具、降AI工具保姆级测评2026、降AI这个需求,不同工具之间差距其实挺明显的,不是"随便用一个都一样"。 我的结论:嘎嘎降AI(www.aigcleaner.com…...
langchain技术栈研究
引言 langchain新版本1.1.0 出来了,老版的api看了一些,api写法看起来有些凌乱,感觉还是SpringAI相对好好记忆一些。不知到1.x版本的会好使一些不。我们先来看看新版的langchain、langgraph、deepagents。 python vscode安装了一个backformate…...
