APP下载

在Red Hat Enterprise Linux或CentOS Linux上安装MongoDB社群版

消息来源:baojiabao.com 作者: 发布时间:2024-05-04

报价宝综合消息在Red Hat Enterprise Linux或CentOS Linux上安装MongoDB社群版

内容导航:

在Red Hat Enterprise Linux或CentOS Linux上安装MongoDB社群版

前提条件操作步骤非预设MongoDB目录路径非预设MongoDB埠抑制FTDC警告(可选)使用预设路径使用非预设路径ulimit目录路径配置SELinux前提条件操作步骤概述安装包安装MongoDB社群版概述

使用本教程在Red Hat Enterprise Linux、CentOS Linux或Oracle Linux**[1]系统(版本6或者版本7)上使用.rpm**软件包安装MongoDB社群版。

本安装教程仅支援64位系统。更多详情请参考支援的平台。

不支援**WINDOWS SUBSYSTEM FOR LINUX (WSL) **:

MongoDB不支援WSL,在WSL上的使用者遇到了在WSL上安装的各种问题,例如:

生产环境部署注意事项:

在生产环境中部署MongoDB之前,请参考生产环境部署注意事项。

**[1]**MongoDB仅支援执行在Red Hat Compatible Kernel (RHCK)上的Oracle Linux。MongoDB不支援Unbreakable Enterprise Kernel (UEK)。

安装包

MongoDB在自身的软件仓库中提供官方支援的包如下:

包名称

描述

安装MongoDB社群版

要安装不同的MongoDB版本,请参考对应版本的文件。要安装以前的版本,请参考3.6版本的教程。

本安装教程仅支援64位系统。更多详情请参考支援的平台。

您还可以在AWS、Azure或GCP上使用Atlas服务执行MongoDB,Atlas是完全托管的数据库即服务。Atlas使您可以配置从免费沙箱环境到全域性分片生产丛集的任何内容。立刻设定一个免费丛集。

使用.rpm包安装(推荐)

配置包管理系统(yum)。

建立一个 /etc/yum.repos.d/mongodb-org-4.0.repo档案以便您可以直接使用yum命令安装MongoDB:

[mongodb-org-4.0]

name = MongoDB Repository

baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/

gpgcheck = 1

enabled = 1

gpgkey = https:// www.mongodb.org/static/pgp/server-4.0.asc

您可以在储存库本身找到.repo每个版本的档案。奇数的次要版本(例如3.5)是开发版本,不适合生产使用。

安装MongoDB元件。

要安装最新的稳定版MongoDB,使用下述命令:

sudo yum install -y mongodb-org

要安装特定的MongoDB版本,请单独指定每个元件包,并将版本号附加到元件包名称中,如下所示:

sudo yum install -y mongodb-org-4.0.9 mongodb-org-server-4.0.9 mongodb-org-shell-4.0.9 mongodb-org-mongos-4.0.9 mongodb-org-tools-4.0.9

您可以指定任何可用的MongoDB版本。但是当更新版本可用时,yum会升级软件包。为防止被意外升级,请将软件包固定。要固定软件包,请将下述exclude指令新增到您的/etc/yum.conf档案中。

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

使用tar包安装

前提条件

MongoDB的.tar.gz压缩包需要安装以下依赖项:

yum install libcurl openssl

操作步骤

下载MongoDB的.tar.gz压缩包。

从MongoDB下载中心下载适用您系统的压缩包。

从下载的档案中提取档案。

例如,您可以在系统的shell中使用tar 命令。

tar -zxvf mongodb-linux-*-4.0.9.tgz

确保二进位制档案位于PATH环境变数中列出的目录中。

MongoDB二进位制档案位于压缩包的bin/目录中。您必须执行下述操作中的一种:

例如,您可以新增下述命令到您的shell的初始化指令码中(例如~/.bashrc)。

export PATH=/bin:$PATH

将替换为提取的MongoDB存档的路径。

将这些二进位制档案复制到PATH变数监听的目录中,例如 /usr/local/bin。

从PATH变数中监听的目录中建立指向每个二进位制档案的符号连结。

修改使用者的PATH环境变数以包含此目录。

执行MongoDB社群版

前提条件

ulimit

大多数类Unix操作系统限制会话可能使用的系统资源。这些限制可能会对MongoDB操作产生负面影响。

更多详情,请参考UNIX ulimit设定。

目录路径

使用预设路径

预设情况下,MongoDB使用mongod使用者账户执行并使用以下预设目录:

/var/lib/mongo (资料目录)

/var/log/mongodb (日志目录)

➤如果您通过包管理器安装

将建立预设目录,并将这些目录的所有者和组设定为mongod。

➤如果您通过下载压缩包安装

未建立预设的MongoDB目录。需要手动建立MongoDB资料和日志目录:

根据您的使用者许可权,您可能需要使用sudo来执行这些操作。

mkdir -p /var/lib/mongo

mkdir -p /var/log/mongodb

预设情况下,MongoDB使用mongod使用者账户执行。建立后,将这些目录的所有者和组设定为mongod:

chown -R mongod:mongod

使用非预设路径

使用预设目录以外的资料目录、日志目录:

根据您的使用者许可权,您可能需要使用sudo来执行这些操作。

建立新的目录

编辑配置档案/etc/mongod.conf并相应地修改以下字段:

storage.dbPath:指定一个新的资料目录路径,例如: /some/data/directory)。

systemLog.path:指定一个新的日志档案路劲,例如/some/log/directory/mongod.log。

确保执行MongoDB的使用者可以访问该目录。

chown -R mongod:mongod

如果更改了执行MongoDB程序的使用者,则必须授予新使用者对这些目录的访问许可权。

如果SELinux处于enforcing模式,需要配置SELinux。详情请参考下文的配置SELinux。

配置SELinux

如果SELinux处于enforcing模式,您必须在以下情况下为MongoDB配置SELinux:

您没有使用预设的MongoDB目录(对于RHEL 7.0)。

您没有使用预设的MongoDB埠。

非预设MongoDB目录路径

更新SELinux策略以允许mongod服务使用新目录:

semanage fcontext -a -t /MongoDB/directory.*>

在适当的地方指定以下型别之一:

请务必在目录末尾包含*。

mongod_var_lib_t:用于资料目录。

mongod_log_t:用于日志档案目录。

mongod_var_run_t:用于pid档案目录。

更新新目录的SELinux使用者策略:

chcon -Rv -u system_u -t /MongoDB/directory>

在适当的地方指定以下型别之一:

mongod_var_lib_t:用于资料目录。

mongod_log_t:用于日志档案目录。

mongod_var_run_t:用于pid档案目录。

将更新的SELinux策略应用于该目录:

restorecon -R -v /MongoDB/directory>

示例:

根据您的使用者许可权,您可能需要使用sudo来执行这些操作。

请确保在目录末尾包含*以进行semanage fcontext操作。

如果使用非预设的MongoDB资料路径/mongodb/data:

semanage fcontext -a -t mongod_var_lib_t \'/mongodb/data.*\'

chcon -Rv -u system_u -t mongod_var_lib_t \'/mongodb/data\'

restorecon -R -v \'/mongodb/data\'

如果使用非预设的MongoDB日志目录/mongodb/log (例如:日志档案路径为/mongodb/log/mongod.log):

semanage fcontext -a -t mongod_log_t \'/mongodb/log.*\'

chcon -Rv -u system_u -t mongod_log_t \'/mongodb/log\'

restorecon -R -v \'/mongodb/log\'

非预设MongoDB埠

根据您的使用者许可权,您可能需要使用sudo来执行操作。

semanage port -a -t mongod_port_t -p tcp

抑制FTDC警告(可选)

当前的SELINUX策略不允许MongoDB程序开启和读取/proc/net/netstat用于诊断引数(FTDC)。因此,审计日志可能包括许多关于无法访问此路径的讯息。

要跟踪建议的修复程式,请参见:https://github.com/fedora-selinux/selinux-policy-contrib/pull/79。

作为临时修复,您可以手动调整SELinux策略(可选):

建立策略档案 mongodb_proc_net.te:

cat > mongodb_proc_net.te

module mongodb_proc_net 1.0;

require {

type proc_net_t;

type mongod_t;

class file { open read };

}

#============= mongod_t ==============

allow mongod_t proc_net_t:file { open read };

EOF

建立后,编译并载入自定义策略模组。

根据您的使用者许可权,您可能需要使用sudo来执行semodule操作。

checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te

semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod

semodule -i mongodb_proc_net.pp

操作步骤

启动MongoDB。

您可以通过执行以下命令来启动mongod程序。

sudo service mongod start

验证MongoDB是否已成功启动。

您可以通过检查/var/log/mongodb/mongod.log中日志档案的内容来检查mongod程序是否已成功启动。

[initandlisten] waiting for connections on port

其中是/etc/mongod.conf中配置的埠,预设为27017。

您可以选择通过执行以下命令来确保MongoDB在系统重新启动后自动启动。

停止MongoDB。

根据需要,您可以执行以下命令结束mongod程序:

sudo service mongod stop

重启MongoDB。

您可以执行以下命令重启mongod程序:

sudo service mongod restart

您可以通过观察/var/log/mongodb/mongod.log档案中的输出来跟踪错误或重要讯息的程序状态。

开始使用MongoDB。

在与mongod相同的主机上启动mongo shell。您可以在没有任何命令列选项的情况下执行mongo shell,使用预设埠27017连线到localhost上执行的mongod:

mongo

有关使用mongo shell进行连线的更多资讯,例如连线到在不同主机、埠上执行的mongod例项,请参考:The mongo Shell。

为了帮助您开始使用MongoDB,MongoDB提供了各种驱动程式版本的入门指南。有关可用版本,请参阅入门。

解除安装MongoDB社群版

要从系统中完全解除安装MongoDB,您必须删除MongoDB应用程序本身、配置档案以及包含资料和日志的任何目录。以下部分将指导您完成必要的步骤。

此过程将完全删除MongoDB,包含配置和所有数据库。此过程不可逆,因此请确保在继续之前备份所有配置和资料。

停止MongoDB。

sudo service mongod stop

解除安装软件包。

删除之前安装的所有MongoDB软件包。

sudo yum erase $(rpm -qa | grep mongodb-org)

删除资料目录。

删除MongoDB数据库和日志档案。

sudo rm -r /var/log/mongodb

sudo rm -r /var/lib/mongo

译者

桂陈

TW一枚,熟悉计算机网络方向,数据库技术的学习者。

2020-01-19 00:05:00

相关文章