在 Red Hat 或 CentOS 上安装 MongoDB Community Edition
在此页面上
Overview
使用本教程,使用 yum
软件包管理器在 Red Hat Enterprise Linux、CentOS Linux 或 Oracle Linux [1]上安装 MongoDB 7.0 Community Edition。
MongoDB 版本
本教程安装的是 MongoDB 7.0 Community Edition。想要安装不同版本的 MongoDB Community Edition,请移步本页面左上角的版本下拉菜单,选择该版本对应的文档进行参照。
Considerations
平台支持
MongoDB 7.0Community Edition 支持以下 64 位版本的 Red Hat Enterprise Linux (RHEL)、CentOS Linux、Oracle Linux [1]、Rocky Linux 和 x86 _64 架构上的 AlmaLinux [2] :
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 9
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 8
RHEL / CentOS / Oracle 7
MongoDB 仅支持这些平台的 64 位版本。
RHEL/CentOS/Oracle/Rocky/Alma Linux 上的 MongoDB 7.0 Community Edition 还支持部分平台上的 ARM64 架构。
更多信息,请参阅平台支持。
[1] | (1, 2) MongoDB 仅支持运行 Red Hat Compatible Kernel (RHCK) 的 Oracle Linux。MongoDB 不支持 Unbreakable Enterprise Kernel (UEK)。 |
[2] | 针对 RHEL 版本 8.0+ 发布的 MongoDB 本地部署产品,与 Rocky Linux 版本 8.0+ 和 AlmaLinux 版本 8.0+ 兼容并受支持(前提是这些发行版能满足其承诺,提供完整的 RHEL 兼容性)。 |
生产说明
在生产环境中部署 MongoDB 之前,请参阅自管理部署的生产注意事项文档,其中提供了有关生产环境中 MongoDB 部署的性能注意事项和配置建议。
安装 MongoDB Community Edition
按照以下步骤使用 yum
软件包管理器安装 MongoDB Community Edition。
配置存储库。
创建 /etc/yum.repos.d/mongodb-org-7.0.repo
文件,以便直接使用 yum
来安装 MongoDB:
[mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-7.0.asc
[mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-7.0.asc
[mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-7.0.asc
此外,也可直接从 MongoDB 存储库 下载 .rpm
文件。下载分类标准包括 Red Hat/CentOS 版本(例如 9
)、MongoDB 发布版本(例如7.0
)、架构(例如x86_64
)。
在 MongoDB 5.0 之前,奇数 MongoDB 发布版本(例如 4.3
)为开发版本。从 MongoDB 5.1 开始,MongoDB 每季度进行快速发布。有关快速发布版本与长期支持版本之间区别的更多信息,请参阅 MongoDB 版本控制。
安装MongoDB Community Server。
要安装最新稳定版 MongoDB,请执行以下命令:
sudo yum install -y mongodb-org
要安装 MongoDB 的特定版本,需单独指定各组件包并在软件包名称后面加上版本号,如下例所示:
sudo yum install -y mongodb-org-7.0.14 mongodb-org-database-7.0.14 mongodb-org-server-7.0.14 mongodb-mongosh mongodb-org-mongos-7.0.14 mongodb-org-tools-7.0.14
注意
yum
当有新版本可用时会自动升级这些软件包。如果要阻止 MongoDB 升级,请将以下 exclude
指令添加到 /etc/yum.conf
文件,固定您的软件包:
exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-mongosh,mongodb-org-mongos,mongodb-org-tools
运行 MongoDB Community Edition
ulimit
大多数类 Unix 操作系统都会限制进程可以使用的系统资源。 这些限制可能会对MongoDB操作产生负面影响,应该进行调整。 有关平台的建议设置,请参阅自管理部署的 UNIX ulimit
设置。
注意
如果打开文件数的 ulimit
值低于 64000
,MongoDB 会生成初创企业警告。
目录路径
使用默认目录
默认情况下,MongoDB 使用 mongod
用户帐户运行,并且使用以下默认目录:
/var/lib/mongo
(数据目录)/var/log/mongodb
(日志目录)
软件包管理器在安装过程中创建默认目录。所有者和群组名称是mongod
。
使用非默认目录
要使用除默认目录外的数据目录和/或日志目录:
创建新目录。
编辑配置文件
/etc/mongod.conf
并相应修改以下字段:storage.dbPath
指定新的数据目录路径(例如/some/data/directory
)systemLog.path
以指定新的日志文件路径(例如/some/log/directory/mongod.log
)
确保运行 MongoDB 的用户有权访问这些目录:
sudo chown -R mongod:mongod <directory> 如果更改运行 MongoDB 进程的用户,必须赋予新用户访问这些目录的权限。
如果强制执行,请配置 SELinux。请参阅配置 SELinux。
配置 SELinux
从 MongoDB 5.0 开始,一个新的 SELinux 策略可用于安装 MongoDB:
使用
.rpm
安装程序。使用默认配置设置。
在 RHEL7 或更高版本上运行。
使用 LDAP 身份验证安装 MongoDB Enterprise 时,必须额外实施以下 SELinux 策略:
对于通过操作系统库使用 LDAP 身份验证的部署,MongoDB 必须有权访问
tcontext=system_u:object_r:ldap_port_t:s0
LDAP 端口。您可以通过运行setsebool -P authlogin_nsswitch_use_ldap 1
来启用访问权限。对于通过 saslauthd 使用 LDAP 身份验证的部署,必须通过运行
sudo setsebool -P daemons_enable_cluster_mode 1
来启用集群模式。
如果您的安装不符合这些要求,请参阅 .tgz
软件包的 SELinux 说明。
注意
如果您的 MongoDB 部署对以下任何设置项使用了自定义设置:
您无法使用 MongoDB 提供的 SELinux 策略。备选方法是创建一个自定义 SELinux 策略,但编写不当的自定义策略可能降低安全性或导致 mongod
实例无法运行。
安装 SELinux 策略
确保您已安装以下软件包:
git
make
checkpolicy
policycoreutils
selinux-policy-devel
sudo yum install git make checkpolicy policycoreutils selinux-policy-devel 下载策略存储库。
git clone https://github.com/mongodb/mongodb-selinux 构建策略。
cd mongodb-selinux make 应用该策略。
sudo make install
重要
向后不兼容的功能
从 MongoDB 5.1 开始,您必须在先前克隆 SELinux 策略的 目录运行以下命令,然后才能 降级到 MongoDB 的早期版本:
sudo make uninstall
SELinux 政策注意事项
步骤
请按照以下步骤在您的系统上运行 MongoDB Community Edition。 参照这些操作说明的前提是您在使用默认设置。
初始化系统
要运行和管理 mongod
进程,需使用操作系统内置的初始化系统。较新版本的 Linux 倾向于使用 systemd(它会使用 systemctl
命令),而较旧版本的 Linux 倾向于使用 System V init(它使用 service
命令)。
如果您不确定您的平台使用的是哪个初始化系统,请运行以下 命令:
ps --no-headers -o comm 1
然后根据结果选择下面合适的标签页:
systemd
- 选择下方的 systemd (systemctl) 标签页。init
- 选择下方的 System V Init (service) 标签页。
启动 MongoDB。
您可以通过发出以下命令来启动 mongod
进程:
sudo systemctl start mongod
如果收到类似下方的错误(在启动 mongod
时):
Failed to start mongod.service: Unit mongod.service not found.
首先运行以下命令:
sudo systemctl daemon-reload
然后再次运行上面的启动命令。
验证 MongoDB 是否已成功启动。
您可以通过发出以下命令来验证 mongod
进程已成功启动:
sudo systemctl status mongod
您可以通过选择执行以下命令,来确保 MongoDB 将在系统 重新启动后启动:
sudo systemctl enable mongod
停止 MongoDB。
您可以根据需要,通过发出以下命令来停止 mongod
进程:
sudo systemctl stop mongod
重启 MongoDB。
您可以通过发出以下命令来重启 mongod
进程:
sudo systemctl restart mongod
通过观察 /var/log/mongodb/mongod.log
文件中的输出,可以跟踪错误或重要消息的进程状态。
开始使用 MongoDB。
在与 mongod
相同的主机上启动 mongosh
会话。您可以在不使用任何命令行选项的情况下运行 mongosh
,从而连接在本地主机上运行且默认端口号为 27017 的 mongod
。
mongosh
如需进一步了解使用 mongosh
进行连接(例如连接在其他主机和/或端口上运行的 mongod
实例),请参阅 mongosh 文档。
为了帮助您开始使用 MongoDB,MongoDB 提供了各种驱动程序版本的入门指南。关于驱动程序文档,请参阅 开始使用 MongoDB 开发。
启动 MongoDB。
您可以通过发出以下命令来启动 mongod
进程:
sudo service mongod start
验证 MongoDB 是否已成功启动
您可以通过检查 /var/log/mongodb/mongod.log
的日志文件的内容来验证 mongod
进程是否已成功启动
[initandlisten] waiting for connections on port <port>
其中,<port>
是在 /etc/mongod.conf
中配置的端口,默认为 27017
。
您可以通过选择执行以下命令,来确保 MongoDB 将在系统 重新启动后启动:
sudo chkconfig mongod on
停止 MongoDB。
您可以根据需要,通过发出以下命令来停止 mongod
进程:
sudo service mongod stop
重启 MongoDB。
您可以通过发出以下命令来重启 mongod
进程:
sudo service mongod restart
通过观察 /var/log/mongodb/mongod.log
文件中的输出,可以跟踪错误或重要消息的进程状态。
开始使用 MongoDB。
在与 mongod
相同的主机上启动 mongosh
会话。您可以在不使用任何命令行选项的情况下运行 mongosh
,从而连接在本地主机上运行且默认端口号为 27017 的 mongod
。
mongosh
如需进一步了解使用 mongosh
进行连接(例如连接在其他主机和/或端口上运行的 mongod
实例),请参阅 mongosh 文档。
为了帮助您开始使用 MongoDB,MongoDB 提供了各种驱动程序版本的入门指南。关于驱动程序文档,请参阅 开始使用 MongoDB 开发。
卸载 MongoDB Community Edition
要从系统中完全删除 MongoDB,您必须删除 MongoDB 应用程序本身、配置文件以及任何包含 数据和日志的目录。以下部分将指导您完成所需的步骤。
警告
此过程将完全删除 MongoDB、其配置以及所有数据库。此过程不可逆,因此请确保在继续之前备份所有配置和数据。
停止 MongoDB。
通过发出以下命令来停止 mongod
进程:
sudo service mongod stop
更多信息
默认绑定本地主机
By default, MongoDB launches with bindIp
set to 127.0.0.1
, which binds to the localhost network interface. This means that the mongod
can only accept connections from clients that are running on the same machine. Remote clients will not be able to connect to the mongod
, and the mongod
will not be able to initialize a replica set unless this value is set to a valid network interface which is accessible from the remote clients.
该值可通过以下任一方式配置:
警告
将实例绑定到可公开访问的 IP 地址之前,必须保护集群免遭未经授权的访问。有关安全建议的完整列表,请参阅自管理部署的安全清单。至少应考虑启用身份验证和强化网络基础设施。
有关配置bindIp
的详细信息,请参阅自托管部署中的IP绑定。
MongoDB 社区版包
MongoDB Community Edition 可从其专用 存储库获取,并包含以下官方支持的包:
包名称 | 说明 | ||||||
---|---|---|---|---|---|---|---|
mongodb-org | 自动安装下列组件包的 metapackage 。 | ||||||
mongodb-org-database | |||||||
mongodb-mongosh | 包含 MongoDB Shell ( mongosh )。 | ||||||
mongodb-org-tools | 自动安装下列组件包的
|