Linux系统安装部署MongoDB完整教程(图文详解)

前言:本期给大家分享一下目前最新Linux系统安装部署MongoDB完整教程,我的服务器采用的是Centos7,在部署之前我重装了我的服务器,目的是为了干净整洁的给大家演示我是如何一步步的操作的,整体部署还是挺简洁,这边做一个笔记分享!

博主的其他部署教程:

1、Jenkins部署前后端分离项目: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文件中为如下代码即可

bash 复制代码
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配置文件

bash 复制代码
vim mongodb.conf

5、复制如下代码:

注:dbpath和logpath需要替换成自己的路径,复制的时候可能dbpath会突然变成th,记得检查一下有没有复制错了!

bash 复制代码
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

注:路径需要替换成自己的!

bash 复制代码
./mongod --config /usr/local/mongoDB/mongoDBServer/etc/mongodb.conf

启动成功!

六、配置管理员用户

1、进入MongoDB

bash 复制代码
./mongo

2、使用管理员权限

bash 复制代码
use admin

3、创建用户

用户名为:htt

密码为:123456

bash 复制代码
db.createUser( {user: "htt",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});

4、查看已经存在的用户

bash 复制代码
show users

5、关闭MongoDB服务

bash 复制代码
db.shutdownServer()

6、不关闭服务直接退出(执行这个命令,因为下面还需要用到这个服务

bash 复制代码
exit

七、配置环境变量

1、编辑profile文件

bash 复制代码
vim /etc/profile

2、按i进入编辑模式

3、改为自己的安装路径

bash 复制代码
export PATH=$PATH:/usr/local/mongoDB/mongoDBServer/bin

4、按Esc键退出编辑模式,输入:wq保存并退出vim编辑器即可

5、让配置文件生效

bash 复制代码
source /etc/profile

6、查看mongoDB基本信息

bash 复制代码
mongo --version

这样就配置成功了!

八、配置软链

1、将mongo路径软链到/usr/bin路径下,方便随处执行mongo命令

bash 复制代码
ln -s /usr/local/mongoDB/mongoDBServer/bin/mongo /usr/bin/mongo

2、进入MongoDB(前提是MongoDB服务必须开启,如果执行了db.shutdownServer()将无法进入

bash 复制代码
mongo

这样其实软链就算配置成功了,下面我们尝试使用刚才配置好的用户信息登录一下!

3、使用管理员权限

bash 复制代码
use admin

4、使用刚才创建的用户名密码进行验证

bash 复制代码
db.auth('htt','123456')

返回1则表示成功!

5、退出

bash 复制代码
exit

九、设置开机自启动

1、创建mongodb.service服务文件

bash 复制代码
vim /lib/systemd/system/mongodb.service

2、写入如下内容

注: ExecStart和ExecStop要替换成自己的安装路径,同样注意别复制错了,第一次复制可能[Unit]变成了t],自己仔细检查一下!

bash 复制代码
[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 

命令详解:

参数 解释
Description 描述这个服务单元的名称和功能,用于系统管理。
After 定义该服务在网络目标(network.target)启动后再启动。
Type=forking 表明这个服务会fork进程,systemd需要监控其主进程。
ExecStart 服务启动时执行的命令,这里为启动mongod。
ExecReload 服务重载时发送信号的命令,这里发送HUP信号重载配置。
ExecStop 服务停止时执行的命令,这里为正常关闭mongod。
PrivateTmp 给服务分配独立的临时空间,可省略。
WantedBy 指定这个服务属于哪个目标,这里是多用户目标。

3、按Esc键退出编辑模式,输入:wq保存并退出vim编辑器即可

4、重新加载配置

bash 复制代码
systemctl daemon-reload

5、进入创建好的目录

bash 复制代码
cd /lib/systemd/system/

6、赋予权限

bash 复制代码
chmod 755 mongodb.service

7、设置开机自启动

bash 复制代码
systemctl enable mongodb.service

到这一步就算是可以了,下面为补充的2个命令。

8、启动服务(这边我们服务已经启动过了,无需再启动

bash 复制代码
systemctl start mongodb.service

9、关闭服务

bash 复制代码
systemctl stop mongodb.service

10、重启服务器以后,输入如下命令(上面配置的软链就是这个好处)

bash 复制代码
mongo

大功告成!

十、总结

以上就是我使用Linux安装部署MongoDB数据库的完整教程,如有问题,欢迎评论区讨论!

相关推荐
小宋102140 分钟前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq
m0_6090004243 分钟前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
小安运维日记2 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
kejijianwen3 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
编程零零七3 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
CoolTiger、5 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
m0_741768855 小时前
使用docker的小例子
运维·docker·容器
学习3人组6 小时前
CentOS 中配置 OpenJDK以及多版本管理
linux·运维·centos
高兴就好(石6 小时前
DB-GPT部署和试用
数据库·gpt
厨 神6 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu