参考 > 安装 > 安装MongoDB社区版 > 在Linux上安装 > 在Red Hat上安装
MongoDB地图集
使用本教程,使用软件包管理器在Red Hat Enterprise Linux,CentOS Linux或Oracle Linux [1]上安装MongoDB 4.2 Community Edition
yum
。
本教程将安装MongoDB 4.2社区版。要安装其他版本的MongoDB社区,请使用此页面左上角的版本下拉菜单选择该版本的文档。
MongoDB 4.2 Community Edition 在x86_64体系结构上 支持以下 64位版本的Red Hat Enterprise Linux(RHEL),CentOS Linux和Oracle Linux [1]:
MongoDB仅支持这些平台的64位版本。
RHEL / CentOS / Oracle 上的MongoDB 4.2社区版 还支持某些平台上的s390x体系结构。
有关更多信息,请参见支持的平台。
[1] | (1,2)的MongoDB仅支持运行红帽兼容内核(RHCK)的Oracle的Linux。MongoDB的确实不支持坚不可摧的企业内核(UEK)。 |
Windows Linux子系统(WSL)-不支持
MongoDB不支持Linux的Windows子系统(WSL)。
请按照以下步骤使用yum
程序包管理器安装MongoDB Community Edition
。
yum
)。¶创建一个/etc/yum.repos.d/mongodb-org-4.2.repo
文件,以便您可以使用yum
以下命令直接安装MongoDB :
您也可以.rpm
直接从MongoDB存储库下载文件
。下载按Red Hat / CentOS版本(例如7
),MongoDB
发行版本
(例如4.2
),架构(例如x86_64
)进行组织。奇数编号的MongoDB发布版本(例如
4.3
)是开发版本,不适合生产部署。
要安装最新的稳定版MongoDB,请发出以下命令:
另外,要安装特定版本的MongoDB,请分别指定每个组件包,并将版本号附加到包名中,如以下示例所示:
您可以指定任何可用的MongoDB版本。但是yum
,当有新版本可用时,将升级软件包。为防止意外升级,请固定包装。要固定包,exclude
请在/etc/yum.conf
文件中添加以下指令:
默认情况下,MongoDB使用mongod
用户帐户运行,并使用以下默认目录:
/var/lib/mongo
(数据目录)/var/log/mongodb
(日志目录)mongod
。未创建默认的MongoDB目录。要创建MongoDB数据和日志目录:
默认情况下,MongoDB使用mongod
用户帐户运行。创建后,将这些目录的所有者和组设置为mongod
:
要使用默认目录以外的数据目录和/或日志目录:
创建一个或多个新目录。
编辑配置文件,/etc/mongod.conf
并相应地修改以下字段:
storage.dbPath
指定新的数据目录路径(例如/some/data/directory
)systemLog.path
指定新的日志文件路径(例如/some/log/directory/mongod.log
)确保运行MongoDB的用户有权访问一个或多个目录:
如果更改运行MongoDB进程的用户,则必须 授予新用户访问这些目录的权限。
如果强制配置SELinux。请参阅配置SELinux。
重要
如果SELinux处于enforcing
模式下,则必须为MongoDB自定义SELinux策略。
当前的SELinux策略不允许MongoDB进程访问/sys/fs/cgroup
,这是确定系统上可用内存所必需的。如果打算以enforcing
模式运行SELinux
,则需要对SELinux策略进行以下调整:
确保您的系统已checkpolicy
安装软件包:
创建一个自定义策略文件mongodb_cgroup_memory.te
:
创建完成后,通过运行以下三个命令来编译并加载自定义策略模块:
现在,将SELinux设置为,MongoDB进程就可以访问正确的文件enforcing
。
重要
如果SELinux处于enforcing
模式下,则在以下两种情况下,您还需要进一步自定义SELinux策略:
更新SELinux策略以允许mongod
服务使用新目录:
在适当的地方指定以下类型之一:
mongod_var_lib_t
用于数据目录mongod_log_t
用于日志文件目录mongod_var_run_t
用于pid文件目录注意
确保.*
在目录末尾包含。
为新目录更新SELinux用户策略:
在适当的地方指定以下类型之一:
mongod_var_lib_t
用于数据目录mongod_log_t
用于日志目录mongod_var_run_t
用于pid文件目录将更新的SELinux策略应用于目录:
举些例子:
小费
sudo
来执行这些操作。.*
在操作目录的末尾
包括。semanage fcontext
如果使用非默认MongoDB数据路径/mongodb/data
:
如果使用非默认的MongoDB日志目录/mongodb/log
(例如,日志文件路径为/mongodb/log/mongod.log
):
小费
根据您的用户权限,您可能需要使用sudo
来执行该操作。
FTDC
警告¶当前的SELinux策略不允许的MongoDB进程打开并阅读/proc/net/netstat
了诊断参数(FTDC)。这样,审核日志可能包含许多有关无法访问此路径的消息。
要跟踪建议的修复程序,请参阅https://github.com/fedora-selinux/selinux-policy-contrib/pull/79。
(可选)作为临时解决方案,您可以手动调整SELinux策略:
确保您的系统已checkpolicy
安装软件包:
创建一个自定义策略文件mongodb_proc_net.te
:
创建完成后,通过运行以下三个命令来编译并加载自定义策略模块:
请按照以下步骤在系统上运行MongoDB Community Edition。这些说明假定您使用的是默认设置。
初始化系统
要运行和管理您的mongod
流程,您将使用操作系统的内置init系统。Linux的最新版本倾向于使用systemd(使用systemctl
命令),而Linux的较早版本倾向于使用System V init(使用service
命令)。
如果不确定平台使用哪个初始化系统,请运行以下命令:
然后根据结果在下面选择适当的选项卡:
systemd
-选择下面的systemd(systemctl)标签。init
-选择下面的System V Init(服务)标签。要从系统中完全删除MongoDB,必须删除MongoDB应用程序本身,配置文件以及任何包含数据和日志的目录。以下部分将指导您完成必要的步骤。
警告
此过程将完全删除MongoDB,其配置和所有 数据库。此过程不可逆,因此请确保在继续操作之前备份所有配置和数据。
删除以前安装的所有MongoDB软件包。
删除MongoDB数据库和日志文件。
默认情况下,MongoDB启动时将其bindIp
设置为
127.0.0.1
,该绑定到localhost网络接口。这意味着mongod
只能接受来自同一计算机上运行的客户端的连接。除非将此值设置为有效的网络接口,否则远程客户端将无法连接到mongod
,并且mongod
不能初始化副本集。
可以配置此值:
MongoDB Community Edition可从其自己的专用存储库中获得,并且包含以下官方支持的软件包:
包裹名字 | 描述 |
---|---|
mongodb-org |
一metapackage ,将自动安装以下四个组件包。 |
mongodb-org-server |
包含mongod 守护程序,关联的初始化脚本和配置文件(/etc/mongod.conf )。您可以使用初始化脚本从mongod
配置文件开始。有关详细信息,请参阅Run MongoDB Community Edition。 |
mongodb-org-mongos |
包含mongos 守护程序。 |
mongodb-org-shell |
包含mongo 外壳。 |
mongodb-org-tools |
包含以下的MongoDB工具:,,,
,
,,和。mongoimport
bsondump mongodump mongoexport mongofiles mongorestore mongostat mongotop |