MongoDB的安装
1、在Windows系统上安装MongoDB
在Windows系统上安装MongoDB,首先需要确定自己的Windows系统版本以及MongoDB社区版所支持的系统版本。这里使用的是Windows 10操作系统和MongoDB8.0.4版本。由于MongoDB 6版本之后不再默认安装Mongo Shell,因此本节分为两部分:安装MongoDB和安装MongoDB Shell。
1.1、安装MongoDB
在Windows平台下,MongoDB提供了两种安装形式:直 接运行MSI安装包和msiexec.exe命令行工具,默认直接安装MSI安装包,msiexec.exe命令行形式更倾向于使用自动化无人值守形式部署的系统管理员。
步骤1:
打开MongoDB官网的下载页面,地址为https://www.mongodb.com/try/download/community。单击Select Package显示版本选择界面。在Version下拉列表中选择版本8.0.4,在Platform下拉列表中选择Windows X64操作系统,安装包格式选择msi,单击Download按钮,开始下载,如图所示。

步骤2:
下载完成之后,双击.msi安装包文件开始安装。在安装过程中会弹出安装向导界面,指导使用者安装MongoDB以及MongoDB的可视化工具MongoDBCompass。安装包运行后,界面如图所示。

步骤3:
安装向导提示当前安装的MongoDB版本信息,如图所示,单击Next按钮。

步骤4:
接受当前的终端用户安装协议,选中同意协议的复选框(I accept the terms in the LicenseAgreement),单击Next按钮,如图所示。

步骤5:
选择安装类型,MongoDB支持完整安装和个性化安装。个性化安装方式支持选择所需要的安装组件,同时也支持自定义MongoDB的安装路径。官方推荐的是完整安装。对于初学者或对MongoDB使用不熟练的使用者,建议默认完整安装。此方式会将MongoDB安装在路径C:\Program Files\MongoDB\Server\8.0下。
选择Complete安装类型后,单击Next按钮,如图所示。

步骤6:
配置服务,从4.0版本开始,MongoDB可以配置为一项Windows服务。在这个步骤中,可以选择将MongoDB作为Windows的一个系统服务,如图所示。在这个界面中,可以配置服务的名称,一般默认为MongoDB,同时配置MongoDB的数据目录和日志目录。配置完成后,单击Next按钮。如果这里不将MongoDB配置为Windows的服务,可以手动启动,具体可以查看后面关于手动启动MongoDB实例的内容。

步骤7:
安装可视化工具MongoDB Compass。这里为可选项,既可以安装,也可以不安装。这里选中进行安装,单击Next按钮进入下一步,如图所示。

步骤8:
进入安装进程。上述所有配置完成,单击Install按钮进入安装进程,如图所示。

步骤9:
等待安装进程进行。整个过程可能会持续较长时间,与所使用的计算机配置有关,不同配置耗费的时间有所不同,耐心等待即可,如图所示。

步骤10:
安装进程结束,完成MongoDB和MongoDB Compass的安装。单击Finish按钮,退出安装进程,如图所示。

如果将MongoDB作为服务安装,那么安装结束后,会自动开启服务。要查看MongoDB服务的状态,可以打开系统服务界面,按Ctrl + Shift + Esc组合键,打开任务管理器,切换到"服务"选项卡,或者直接通过Windows系统的搜索找到"服务"界面,在"服务"界面中找到MongoDB服务,查看服务是否正在运行。在服务名称上右击,可以选择开启或停止该服务,如图所示。

或者打开浏览器访问https://localhost:27017,如图所示。

同样,也可以通过命令查看MongoDB服务的状态,开启或停止MongoDB服务。命令如下:
bash
#查看MongoDB服务的状态
sc query MongoDB
#停止MongoDB服务
net stop MongoDB
#开启MongoDB服务
net start MongoDB
执行结果如图所示。

如果不作为服务安装,那么需要手动启动MongoDB实例,这里需要用到mongod命令。该命令在MongoDB安装目录下的bin文件夹(D:\MongoDB\Server\8.0\bin)下。启动时,需要配置数据目录,例如D:\MongoDB\data,如图所示。

MongoDB启动后,该数据目录会生成一些数据库文件,如图所示。

在bin目录下,存在一些关键文件,如图所示。其中,mongod.exe用来启动MongoDB服务,mongos.exe用来管理分片集群。

1.2、配置环境变量
为了方便使用mongod以及其他命令,可以将MongoDB的安装路径加入环境变量。在配置了环境变量后,以上命令就可以省略路径,只保留命令本身的名称。打开环境变量配置界面,检查是否已自动创建环境变量,如果没有,则进行手动创建。首先创建MONGO_HOME的系统变量,如图所示。

然后编辑环境变量Path,在最后加入一行内容,内容为:
bash
%MONGO_HOME%\bin
最终结果如图所示。这样就完成了环境变量的配置。之后使用相关命令时,不需要再进入命令所在目录。

1.3、其他安装形式
除前面介绍的安装方式外,MongoDB还支持使用命令行工具msiexec.exe来安装。这种安装形式一般用在无人值守自动部署中。
首先,打开cmd命令窗口,使用如下命令:
bash
msiexec.exe /l*v mdbinstall.log /qb /i mongodb-windows-x86_64-8.0.4-signed.msi
默认安装路径为C:\ProgramFiles\MongoDB\Server\6.0\bin,可以使用INSTALLLOCATION配置项来修改安装路径:
bash
msiexec.exe /l*v mdbinstall.log /qb /i mongodb-windows-x86_64-8.0.4-signed.msi
INSTALLLOCATION="C:\MongoDB\Server\6.0"
如果同步安装可视化工具,可以使用如下命令:
bash
msiexec.exe /l*v mdbinstall.log /qb /i mongodb-windows-x86_64-8.0.4-signed.msi
SHOULD_INSTALL_COMPASS="0"
其他设置和操作与双击运行.msi安装包的形式相同。
除以上形式外,还支持.zip免安装形式。下载.zip文件后,解压到相应目录,根据以上操作配置环境变量即可。
1.4、常见问题和注意事项
1.4.1、服务无法启动
安装完成后,可能会出现服务无法启动的情况,如图所示。

首先检查是否存在MongoDB服务,如果存在,那么尝试手动启动;如果启动失败,那么先移除服务,再尝试手动添加服务;如果不存在MongoDB服务,可以手动添加MongoDB服务。移除MongoDB服务的命令如下:
bash
sc delete MongoDB
添加服务的命令如下:
bash
mongod -install -f "C:\Program Files\MongoDB\Server\8.0\bin\mongod.cfg"
手动添加MongoDB服务后,参考前述关于手动启动或停止MongoDB服务的描述,使用界面或命令开启MongoDB服务。
1.4.2、单点发行
MongoDB的自动版本更新须在同一大版本下,例如4.2.1到4.2.2可以自动更新,但4.0到4.2这种全量更新,需要重新安装。
1.4.3、平台支持
MongoDB 8.0社区版目前支持以下版本的64位Windows操作系统:
- Windows Server 2019
- Windows Server 2016
- Windows 7/10/11
1.4.4、虚拟化
如果要使用VirtualBox在Windows系统上安装MongoDB,则需要禁用Hyper-V。
2、在Linux系统上安装MongoDB
MongoDB官网提供了多个Linux版本操作系统的安装指南,例如Red Hat、CentOS、Ubuntu、Debian和SUSE等版本的操作系统。限于篇幅,这里不再一一描述。可到官网进行查看,地址为https://www.mongodb.com/docs/manual/administration/install-on-linux/。Red Hat是商业版的Linux系统,与CentOS基本相似,所以它们的安装方式以及支持的MongoDB版本基本类似。
下面以CentOS 7为例,讲解MongoDB的安装方法。此安装教程同样适用于Red Hat Enterprise Linux 7(RHEL7)、Oracle Linux、Rocky Linux和AlmaLinux。
与在Windows系统上安装MongoDB一样,这里选择的MongoDB版本为8.0.4,该数据库版本支持的操 作系统版本如下:
- RHEL(Red Hat Enterprise Linux)
- CentOS
- Oracle Linux
- Rocky Linux
- AlmaLinux 9(Starting in MongoDB 8.0.4)
- AlmaLinux 8
2.1、使用yum方式安装MongoDB
在CentOS系统上安装MongoDB有多种方式,可以直接使用在线yum方式安装,无须提前下载安装包,也可以直接到https://repo.mongodb.org/yum/redhat/页面下载rpm文件安装,或者在官网https://www.mongodb.com/try/download/community页面下载tgz文件进行安装。下面演示如何使用yum方式进行在线安装。
首先创建repo文件,文件目录为/etc/yum.repos.d/mongodb-org-8.0.repo,文件内容如下:
bash
[mongodb-org-8.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/8.0/x86_64/
gpgcheck=1
enabled=1
gpgkeyhttps://www.mongodb.org/static/pgp/server-8.0.asc
repo文件内容如图所示。

如果使用的是Red Hat Enterprise Linux 8,那么baseurl需要换成https://repo.mongodb.org/yum/redhat/8/mongodb-org/8.0 x86_64/,以此类推。
创建完成后,执行安装命令,如下所示:
bash
sudo yum install -y mongodb-org
结果如图所示。

如果要指定MongoDB 6.0下的某个版本,可以执行如下语句:
bash
sudo yum install -y mongodb-org-6.0.10 mongodb-org-database-6.0.10
mongodb-org-server-6.0.10 mongodb-org-mongos-6.0.10 mongodb-org-tools-6.0.10
结果如图所示。

默认情况下,MongoDB使用mongod的Linux系统用户账户,使用如下默认的数据目录和日志目录,安装过程中会自动创建上述目录。
bash
/var/lib/mongo (the data directory)
/var/log/mongodb (the log directory)
如果要修改该目录,可以修改mongod.conf文件的配置。
storage.dbPath:配置数据目录,例如/some/data/directory。systemLog.path:配置日志目录,例如/some/log/directory/mongod.log。
创建完成后,确保当前登录系统的用户账号有权限操作这些文件和目录,如果没有的话,可以使用如下命令配置:
bash
sudo chown -R mongod:mongod /some/data/directory
安装完成后,要运行和管理mongod进程,需要使用操作系统的内置初始化系统启动或停止该进程。新版本的Linux使用systemd(使用命令systemctl),而旧版本的Linux使用System V init(使用命令service),这里的CentOS 7使用的是sysemctl。
如果无法确定应该使用哪个命令,请在Linux下运行以下命令来确定:
bash
ps --no-headers -o comm 1
如果结果为systemd,则使用systemctl命令;如果结果为init,则使用service命令。作者执行命令的结果如图所示。

确定命令后,使用命令开启MongoDB服务。命令如下:
bash
sudo systemctl start mongod
验证MongoDB是否已成功启动。通过以下命令进行检查:
bash
sudo systemctl status mongod
执行结果如图所示。从图中可以看到MongoDB当前的状态、启动的时间、配置文件的目录以及启动服务所使用的sh命令脚本文件。

如果希望MongoDB随操作系统自动重启,可以使用如下命令:
bash
sudo systemctl enable mongod
停止MongoDB服务,可以使用如下命令:
bash
sudo systemctl stop mongod
重新启动MongoDB,可以使用如下命令:
bash
sudo systemctl restart mongod
MongoDB启动后,会生成相关的日志文件,此文件可用来跟踪错误或重要消息的进程状态,日志文件目录为/var/log/mongodb/mongod.log。
完成以上操作后,确保MongoDB处于开启状态,开始使用mongosh连接数据库。与Windows不同,Linux下会直接安装mongosh脚本,而不需要再次手动安装。
Mongosh脚本工具命令为mongosh,执行结果如图所示。

至此,就可以使用数据库命令操作数据库了。例如显示当前的数据库,如图所示。

2.2、卸载MongoDB
要从系统中完全删除MongoDB,必须删除MongoDB应用程序本身、配置文件以及包含以下内容的任何目录、数据和日志。本小节内容将指导读者完成必要的步骤。
下面的卸载过程将完全删除MongoDB及其配置和所有数据库。此过程是不可逆的,因此在继续操作之前,请确保备份所有的配置和数据。
1.停止MongoDB
停止mongod服务可以通过以下命令完成:
bash
sudo service mongod stop
2.删除包
删除以前安装的所有MongoDB包:
bash
sudo yum erase $(rpm -qa | grep mongodb-org)
3.删除数据目录
删除MongoDB数据库和日志文件:
bash
sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongo
2.3、使用其他方式安装MongoDB
MongoDB同样支持以tgz压缩包形式进行安装。首先使用如下命令安装依赖包:
bash
sudo yum install libcurl openssl xz-libs
然后到官网下载tgz压缩包,下载完成后解压缩,命令如下:
bash
tar -zxvf mongodb-linux-*-8.0.4.tgz
将MongoDB的bin目录配置到环境变量的Path中。支持如下两种方式:
- 复制MongoDB的bin目录下的文件到path变量中已配置的某一路径中,例如sudo cp/path/to/the/mongodb-directory/bin/* /usr/local/bin/。
- 在MongoDB的bin目录和path变量中已配置的某一路径之间创建系统链接映射,例如sudo ln -s/path/to/the/mongodb-directory/bin/*/usr/local/bin/。
这种方式安装的MongoDB的默认数据目录和日志目录与yum方式一样。首先创建目录:
bash
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
因为MongoDB默认使用的系统用户为mongod,所以同样需要为group为mongod、用户名为mongod的用户进行目录授权:
bash
sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb
如果不使用默认目录,则修改方式与yum方式相同。
2.4、常见错误和注意事项
2.4.1、允许访问cgroup
当前的SELinux策略不允许MongoDB进程访问/sys/fs/cgroup,这样MongoDB就无法确定系统上的可用内存。如果你打算强制运行SELinux,则需要进行以下调整。
首先,确保你的系统已安装软件包checkpolicy:
bash
sudo yum install checkpolicy
其次,创建自定义策略文件mongodb_cgroup_memory.te:

MongoDB进程现在能够以SELinux模式强制访问文件了。
2.4.2、系统ulimit值
大多数类UNIX系统会限制进程所使用的系统资源数,MongoDB 4.4之后,这个值低于64 000会影响MongoDB系统的运行,这个数值建议设置到64 000。
2.4.3、以yum方式安装MongoDB的自动更新问题
以yum方式安装的MongoDB会自动更新,如果想要关闭自动更新功能,可以修改/etc/yum.conf,在文件中加入如下内容:
