当前位置: 首页 > 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;笔试分数达到面试分数线的选手方可进入…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...