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

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,在部署之前我重装了我的服务器,目的是为了干净整洁的给大家演示我是如何一步步的操作的,整体部署还是挺简洁&#xff0c…...

CSS图片放到<div>里面,自适应宽高全部显示,点击图片跳到新页面预览,点击旋转按钮图片可旋转

有一个需求是图片放到一个固定宽高的<div>里面&#xff0c;不管是横图还是竖图&#xff0c;都要全部显示出来并且保持图片的长宽比例不变形&#xff0c;点击图片可以跳到一个新页面预览&#xff0c;代码如下&#xff1a; <!DOCTYPE html> <html> <head>…...

二阶段web基础与http协议

dns与域名 网络是基于tcp/ip协议进行通信和连接的 应用层-----传输层-----网络层-----数据链路层-----物理层 ip地址&#xff0c;每一台主机都有一个唯一的地址标识&#xff08;固定的ip地址&#xff09; 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&#xff08;XML Path Language&#xff09;是一种用于在XML文档中定位和选择节点的语…...

字符串匹配-KMP算法

KMP算法&#xff0c;字符串匹配算法&#xff0c;给定一个主串S&#xff0c;和一个字串T,返回字串T与之S匹配的数组下标。 在学KMP算法之前&#xff0c;对于两个字符串&#xff0c;主串S&#xff0c;和字串T&#xff0c;我们根据暴力匹配&#xff0c;定义两个指针&#xff0c;i指…...

Java面向对象之UML类图

UML类图 表示 public 类型&#xff0c; - 表示 private 类型&#xff0c;#表示protected类型方法的写法&#xff1a;方法的类型(、-) 方法名(参数名&#xff1a; 参数类型)&#xff1a;返回值类型...

【机器学习】西瓜书学习心得及课后习题参考答案—第4章决策树

这一章学起来较为简单&#xff0c;也比较好理解。 4.1基本流程——介绍了决策树的一个基本的流程。叶结点对应于决策结果&#xff0c;其他每个结点则对应于一个属性测试&#xff1b;每个结点包含的样本集合根据属性测试的结果被划分到子结点中&#xff1b;根结点包含样本全集&a…...

2023.8.2

2022河南萌新联赛第&#xff08;三&#xff09;场&#xff1a;河南大学\神奇数字.cpp //题意&#xff1a;给定三个正整数a b c,求x满足满足abc同余x的个数。 //这个考虑同余的性质&#xff0c;就是两个数的差去取模为0的数肯定是这两个数的同余数,。因此我们计算三个数两两之…...

windows运行窗口常用快捷键命令

winr打开运行窗口,然后输入快捷命令:&#xff08;当然utools和win11搜索也挺好用的&#xff09; cmd : 命令行窗口&#xff08;命令提示符窗口、cmd窗口&#xff09;regedit : 注册表mspaint : 画图工具services.msc : 本地服务设置(比如查看mysql服务是否启动成功)devmgmt.ms…...

HDFS的QJM方案

Quorum Journal Manager仲裁日志管理器 介绍主备切换&#xff0c;脑裂问题解决---ZKFailoverController&#xff08;zkfc&#xff09;主备切换&#xff0c;脑裂问题解决-- Fencing&#xff08;隔离&#xff09;机制主备数据状态同步问题解决 HA集群搭建集群基础环境准备HA集群规…...

安装win版本的neo4j(2023最新版本)

安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量&#xff08;也可选择直接点击快捷方式&#xff0c;就可以不用配环境了&#xff09;3. 启动neo4j 测试代码遇到的问题及解决&#xff08;每次环境都太离谱了&#xff0c;各种问题&#xff09;连接…...

ChatGPT结合知识图谱构建医疗问答应用 (二) - 构建问答流程

一、ChatGPT结合知识图谱 上篇文章对医疗数据集进行了整理&#xff0c;并写入了知识图谱中&#xff0c;本篇文章将结合 ChatGPT 构建基于知识图谱的问答应用。 下面是上篇文章的地址&#xff1a; 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&#xff1a;将数组转为字符串&#xff0c;以及字符串转为数组的方式。 问题2、将对象转为字符串&#xff0c;以及字符串转为对象的方法。 方法&#xff1a; 问题1&#xff1a; 将数组转为字符串可以使用 join() 方法。例如&…...

Eureka 学习笔记2:EurekaClient

版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口&#xff0c;拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能&#xff1a; 获取注册表根据应用名称获取应用根据实例 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实现延时队列

缓存队列延时向接口报工&#xff0c;并支持多实例部署。 引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-data</artifactId><version>3.17.4</version> </dependency> 注入RedisClient …...

无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据

目录 背景 思路 新建两个函数A和B&#xff0c;函数 A处理字典数据&#xff0c;被调用后&#xff0c;判断传递的参数&#xff0c;如果参数为字典&#xff0c;则调用自身&#xff1b; 如果是列表或者元组&#xff0c;则调用列表处理函数B&#xff1b; 函数 B处理列表&#x…...

信息学奥赛一本通——1180:分数线划定

文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】【提示】 AC代码 题目 【题目描述】 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才&#xff0c;A市对所有报名的选手进行了笔试&#xff0c;笔试分数达到面试分数线的选手方可进入…...

SpringApplication对象的构建及spring.factories的加载时机

构建SpringApplication对象源码: 1、调用启动类的main()方法,该方法中调用SpringApplication的run方法。 SpringBootApplication public class SpringbootdemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootdemoApplication.class, …...

基于传统检测算法hog+svm实现图像多分类

直接上效果图&#xff1a; 代码仓库和视频演示b站视频005期&#xff1a; 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 代码展示&#xff1a; 数据集在datasets文件夹下 运行01train.py即可训练 训练结束后会保存模型在本地 运行02pyqt.py会有一个可视化…...

slice() 方法,使用 concat() 方法, [...originalArray],find(filter),移出类名 removeAttr()

在JavaScript中&#xff0c;在 JavaScript 中&#xff0c;clone 不是一个原生的数组方法。但是你可以使用其他方法来实现克隆数组的功能。 以下是几种常见的克隆数组的方法&#xff1a; 使用 slice() 方法&#xff1a; const originalArray [1, 2, 3]; const clonedArray …...

Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例

day02 day02配置告警用户数超过50&#xff0c;发送告警邮件实施验证告警配置配置钉钉机器人告警创建钉钉机器人编写脚本并测试添加报警媒介类型为用户添加报警媒介创建触发器创建动作验证自动发现配置自动发现主动监控配置web2使用主动监控修改配置文件&#xff0c;只使用主动…...

ELK日志分析系统概述及部署

ELK 平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kibana 三个开源工具配合使用&#xff0c;完成更强大的用户对日志的查询、排序、统计需求。 一、ELK概述 1、组件说明 ①ElasticSearch ElasticSearch是基于Lucene&#xff08;一个全文…...

HTML拖拽

拖拽的流程&#xff1a;鼠标按下(mousedown)→鼠标移动(mousemove)→鼠标松开(moveup) 需要理解的几个api&#xff1a; clientX/clientY: 相对于浏览器视窗内的位置坐标&#xff08;不包括浏览器收藏夹和顶部网址部分&#xff09;pageX/pageY: 该属性会考虑滚动&#xff0c;如…...

【vue】 vue2 监听滚动条滚动事件

代码 直接上代码&#xff0c;vue单文件 index.vue <template><div class"content" scroll"onScroll"><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容…...

k8s目录

k8s笔记目录&#xff0c;更新中... 一 概念篇 1.1概念介绍 1.2 pod 1.3 controller 1.3.1 deployment 1.3.2 statefulset 1.3.3 daemonset 1.3.4 job和cronJob1 1.4 serivce和ingress 1.5 配置与存储 1.5.1 configMap 1.5.2 secret 1.5.3 持久化存储 1.5.4 pv和…...

设计模式行为型——解释器模式

目录 什么是解释器模式 解释器模式的实现 解释器模式角色 解释器模式类图 解释器模式举例 解释器模式代码实现 解释器模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是解释器模式 解释器模式&#xff08;Interpreter Pattern&#xff09;属于行为型模式&…...

使用 Webpack 优化前端开发流程

在现代前端开发中&#xff0c;构建工具的选择和优化流程的设计至关重要。Webpack 是一个功能强大的前端构建工具&#xff0c;能够优化我们的开发流程&#xff0c;提高开发效率和项目性能。本文将介绍如何使用 Webpack 来优化前端开发流程。 代码优化和资源管理也是前端项目中不…...