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数据库的完整教程,如有问题,欢迎评论区讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 手撕大厂面试题数组扁平化以及增加版本 plus

前言 现在的前端面试手撕题是一个必要环节,有点时候八股回答的不错但是手撕题没写出来就会让面试官印象分大减,很可能就挂了… 概念 数组的扁平化其实就是将一个多层嵌套的数组转换为只有一层的数组 比如: [1, [2, [3, [4, 5]]]] > [1…

机器学习十大经典算法

机器学习算法是计算机科学和人工智能领域的关键组成部分,它们用于从数据中学习模式并作出预测或做出决策。本文将为大家介绍十大经典机器学习算法,其中包括了线性回归、逻辑回归、支持向量机、朴素贝叶斯、决策树等算法,每种算法都在特定的领…

Docker 安装 MySQL

目录 一、查看 MySQL 版本 二、拉取 MySQL 镜像 三、查看本地镜像 四、运行容器 五、停止和启动容器 六、列出正在运行的容器 七、进入容器 八、登录MySQL 一、查看 MySQL 版本 访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tabtags 。 可以通…

ODIN_1靶机详解

ODIN_1靶机复盘 下载地址:https: //download.vulnhub.com/odin/odin.ova 靶场很简单,一会儿就打完了。 靶场说明里提醒说加一个dns解析。 我们在/etc/hosts加一条解析 就能正常打开网站了,要么网站打开css是乱的。 这里看到结尾就猜测肯定…

2023年性价比电脑硬件主机推荐|电脑党必备硬件选购攻略

在自主搭建电脑变得流行且显卡价格飙升的这个时代,我想给大家推荐一款特别的产品——NUC(Next Unit of Computing)。 NUC是Intel所推出的一种「ITX台式机」,截止目前已经迭代了很多型号,比如之前我买过的猛兽峡谷&…

贝锐蒲公英:没有公网IP,多分支企业如何高效远程访问OA系统?

贝锐蒲公英:没有公网IP,多分支企业、移动办公人员如何高效远程访问OA系统? 国内某大型美妆公司,旗下产品覆盖美容护肤品、彩妆、美容仪器、健康食品、SPA美容会所及等多类服务,致力于为客户提供高品质的产品和完善的服…

2.6 伽马校正 一、Gamma校正

一、Gamma校正 颜色空间 通用:sRGB 电影:DCI-P3 电视:Rec-709、PAL等 印刷:CMYK、Adobe RGB 传递函数 我们知道了颜色的颜色值,要在电子设备上显示,就要把它转换为视频信号,传递函数就是用…

SOLIDWORKS中的弹簧设计指南

SOLIDWORKS是一款广泛使用的三维计算机辅助设计软件,可以用于设计各种机械零件和组件,包括弹簧。在SOLIDWORKS中设计弹簧需要注意一些关键点,本文将为您介绍SOLIDWORKS中的弹簧设计指南。 1. 弹簧类型 按受力性质,弹簧类型包括压…

软件测试这个行业究竟能做到多少岁?35岁真的是一个坎?

前言 在国内,软件测试行业是近10多年来随着互联网的飞速发展逐步兴起来的。 随着行业的发展,测试市场的人才缺口也越来越大,能够提供的就业机会也就越来越多,所以很多人都意气风发地投身到测试行业之中,憧憬这自己在这…

【二进制安全】堆漏洞:Double Free原理

参考:https://www.anquanke.com/post/id/241598 次要参考:https://xz.aliyun.com/t/6342 malloc_chunk 的源码如下: struct malloc_chunk { INTERNAL_SIZE_T prev_size; /*前一个chunk的大小*/ INTERNAL_SIZE_T size; /*当前chunk的…

安卓耗电量分析

这里写自定义目录标题 耗电原因分析分析类型 生成分析数据batterystats操作步骤:生成report报告 battery-historian手动编译安装容器安装内容解析 耗电原因分析 下文有阐述,很详细 https://www.cnblogs.com/SA226343/p/6047543.html https://www.cnblogs.com/mytec…

vue element el-upload附件上传、在线预览、下载当前预览文件

上传 在线预览&#xff08;iframe&#xff09;&#xff1a; payload&#xff1a; response&#xff1a; 全部代码&#xff1a; <template><div><el-table :data"tableData" border style"width: 100%"><el-table-column prop"d…

Java三大特征之多态

文章目录 一、多态的概念二、多态实现条件三、重写四、向上转型和向下转型4.1向上转型4.2向下转型 五、多态的优缺点六、避免在构造方法中调用重写的方法 一、多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#x…

持续部署CICD

目录 &#xff08;1&#xff09;CICD的开展场景 &#xff08;2&#xff09;项目实际应用 CICD 是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;简称。指在研发过程中自动执行一系列脚本来降低开发引入 bug…

tomcat8的安装与服务启动脚本的配置并部署jpress应用

目录 一.了解tomcat8 二.下载安装包 三.安装jdk与tomcat 1.安装jdk 2.安装tomcat &#xff08;1&#xff09;解压安装包并创建软链接 &#xff08;2&#xff09;设置启动用户并更改权限 &#xff08;3&#xff09;编写系统服务文件 &#xff08;4&#xff09;重新加载文件…

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

一、ChatGPT结合知识图谱 在本专栏的前面文章中构建 ChatGPT 本地知识库问答应用&#xff0c;都是基于词向量检索 Embedding 嵌入的方式实现的&#xff0c;在传统的问答领域中&#xff0c;一般知识源采用知识图谱来进行构建&#xff0c;但基于知识图谱的问答对于自然语言的处理…

python Pandas.rank() 排名函数详解

文章目录 Pandas.rank() 函数详解一、参数解析二、案例分享默认排名降序: ascending Falsemethod minmethod maxmethod firstmethod densena_optionbottompct True Pandas.rank() 函数详解 一、参数解析 method&#xff1a;指定排名时的策略。 默认值为 average&#x…

手机python编程软件怎么用,手机python编程软件下载

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机python编程软件保存的代码在哪里&#xff0c;手机python编程软件怎么运行&#xff0c;现在让我们一起来看看吧&#xff01; 原标题&#xff1a;盘点几个在手机上可以用来学习编程的软件 前天在悟空问答的时候&#…

前端生成图片验证码怎么做?

##题记&#xff1a;我们实现一个功能首先想一下我们需要做哪些工作&#xff0c;比如我们需要生成一个随机的图片验证码&#xff0c;我们需要一个就是点击事件获取验证码&#xff0c;通过接口我们去获取图片路径进行渲染就行&#xff0c;这里边还要牵扯一件事情就是获取一个随机…

HTTP之Session、Cookie 与 Application

目录 简介cookiecookie生命周期 sessionsession生命周期 HTTP cookies示例application 简介 cookie、seesion、application三个都会缓存我们用户状态的数据&#xff0c;使得我们在浏览器访问网站时可以更快速的获取到信息。 主要原因在于HTTP协议是无状态的&#xff0c;我们每…