MongoDB 8.0——MongoDB的安装

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,在文件中加入如下内容:

相关推荐
韭菜炒鸡肝天1 小时前
Django模型迁移指南:从命令用法到最佳实践
数据库·django·sqlite
toooooop814 小时前
如何用 ss + ps 精准定位本机 Redis 的“隐形”消费者?
linux·数据库·redis·缓存
spider_xcxc14 小时前
Argo CD App of Apps 模式深度解析:像管理应用一样管理应用
大数据·数据库·elasticsearch
snow@li17 小时前
MyBatis:动态 SQL 全景梳理
数据库·sql·mybatis
360智汇云17 小时前
KV-Probe:通用 KV 数据库测试套件
数据库
x8617 小时前
我与 IT 这三十年:2015,大数据平台的重与轻
数据库·it史
z落落18 小时前
T-SQL 事务(Transaction)
java·数据库·sql
ClouGence19 小时前
MySQL迁移到达梦怎么做?信创数据库低停机迁移实战
数据库·sql·mysql
星空露珠19 小时前
迷你世界3.0API,事件监听
开发语言·数据结构·数据库·游戏·lua