当前位置:首页 > 文章 > 系统OS > 正文内容

在Red Hat或CentOS上安装MongoDB社区版

myblog1个月前 (06-30)系统OS50

MongoDB 4.2 Community Edition在x86_64体系结构上支持以下64位版本的Red Hat Enterprise Linux(RHEL),CentOS Linux和Oracle Linux :


RHEL / CentOS / Oracle 8(从MongoDB社区4.2.1开始)

RHEL / CentOS / Oracle 7

RHEL / CentOS / Oracle 6


MongoDB不支持Windows Linux子系统(WSL)


MongoDB仅支持运行Red Hat兼容内核(RHCK)的Oracle Linux。 


安装MongoDB社区版

配置程序包管理系统(yum)

创建一个/etc/yum.pos.d/mongoDB-org-4.2.repo文件,以便您可以使用yum直接安装MongoDB:


[mongodb-org-4.2]

name=MongoDB Repository

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

gpgcheck=1

enabled=1

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


安装MongoDB包

要安装MongoDB的最新稳定版本,输入以下命令:

sudo yum install -y mongodb-org

或者,要安装MongoDB的特定版本,请分别指定每个组件包,并将版本号附加到包名中,如下面的示例所示:

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

您可以指定任何可用的MongoDB版本。 但是,当新版本可用时,yum会升级软件包。 为防止意外升级,请固定包装。 要固定软件包,请在/etc/yum.conf文件中添加以下exclude指令:

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

运行MongoDB社区版

目录路径

使用默认目录

默认情况下,MongoDB使用mongod用户帐户运行,并使用以下默认目录:

  • /var/lib/mongo (数据目录)

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

如果您通过包管理器安装

将创建默认目录,并将这些目录的所有者和组设置为mongod。

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

未创建默认MongoDB目录。要创建MongoDB数据和日志目录

sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb

默认情况下,MongoDB使用mongod用户帐户运行。 创建后,将这些目录的所有者和组设置为mongod:

sudo chown -R mongod:mongod <目录>

使用非默认目录

要使用默认目录以外的数据目录和/或日志目录:

  1. 创建一个或多个新目录。

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

  • storage.dbPath以指定新的数据目录路径(例如/ some / data / directory)

  • systemLog.path以指定新的日志文件路径(例如/some/log/directory/mongod.log)

   3.确保运行MongoDB的用户能够访问目录:

sudo chown -R mongod:mongod <目录>

如果更改运行MongoDB进程的用户,则必须授予新用户对这些目录的访问权限。

配置SELinux

如果SELinux处于强制模式,则必须为MongoDB自定义SELinux策略。

当前的SELinux策略不允许MongoDB进程访问/ sys / fs / cgroup,这是确定系统上可用内存所必需的。 如果打算以强制模式运行SELinux,则需要对SELinux策略进行以下调整:

1.确保系统安装了校验策略包:

sudo yum install checkpolicy

2.创建自定义策略文件MongoDB_cgroup_Memory.te:


cat > mongodb_cgroup_memory.te <<EOF

module mongodb_cgroup_memory 1.0;


require {

    type cgroup_t;

    type mongod_t;

    class dir search;

    class file { getattr open read };

}


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

allow mongod_t cgroup_t:dir search;

allow mongod_t cgroup_t:file { getattr open read };

EOF


3.创建后,通过运行以下三个命令编译和加载自定义策略模块

checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te
semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod
sudo semodule -i mongodb_cgroup_memory.pp

MongoDB进程现在能够访问了

如果SELinux处于强制模式,以下两种情况下还需要在进一步自定义SELinux策略:

您没有使用默认的MongoDB目录(对于RHEL7.0),也没有使用默认的MongoDB端口。

非默认MongoDB目录路径

1.更新SELinux策略以允许monday服务使用新目录:

semanage fcontext -a -t <type> </some/MongoDB/directory.*>

在适当的地方指定以下类型:

mongod_var_lib_t用于数据目录

mongod_log_t用于日志文件目录

mongod_var_run_t用于pid文件目录

确保在目录末尾包含.*。

2.为新目录更新SELinux用户策略:

chcon -Rv -u system_u -t <type> </some/MongoDB/directory>

在适当的地方指定以下类型:

mongod_var_lib_t用于数据目录

mongod_log_t用于日志目录

mongod_var_run_t用于pid文件目录

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

restorecon -R -v </some/MongoDB/directory>

例如:

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

  • 如果使用/mongoDB/data的非默认MongoDB数据路径:

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/log的非默认MongoDB日志目录(例如,如果日志文件路径为/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端口

semanage port -a -t mongod_port_t -p tcp <portnumber>

可选 (禁止FTDC警告)

当前的SELinux策略不允许MongoDB进程打开和读取/proc/net/netstat用于诊断参数(FTDC)。因此,审计日志可能包含许多关于无法访问此路径的消息。

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

1.确保系统安装了校验策略包

sudo yum install checkpolicy

2.创建自定义策略文件MongoDB_proc_net.te:


cat > mongodb_proc_net.te <<EOF

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


3.创建后,通过运行以下三个命令编译和加载自定义策略模块:

checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te
semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod
sudo semodule -i mongodb_proc_net.pp

运行程序

要运行和管理mongod进程,您将使用操作系统的内置init系统。 Linux的最新版本趋向于使用systemd(使用systemctl命令),而Linux的较早版本趋向于使用System V init(使用service命令)。

如果不确定平台使用哪个init系统,请运行以下命令:

ps --no-headers -o comm 1

systemd (systemctl)

1.启动MongoDB

sudo systemctl start mongod

如果在启动时收到类似以下错误:

Failed to start mongod.service: Unit mongod.service not found.

首先运行以下命令:

sudo systemctl daemon-reload

然后再次运行上面的start命令。

2.验证MongoDB是否已成功启动

sudo systemctl status mongod

将MongoDB加入开机自启:

sudo systemctl enable mongod

3.停止MongoDB

sudo systemctl stop mongod

4.重启MongoDB

sudo systemctl restart mongod

您可以通过查看/var/log/mongodb/mongod.log文件中的输出来跟踪错误或重要消息的进程状态。

5.开始使用MongoDB

mongo

System V Init (service)

1.启动MongoDB

sudo service mongod start

2.验证MongoDB是否已成功启动

[initandlisten] waiting for connections on port <port>

<port>是/etc/mongod.conf中配置的端口,默认为27017。

将MongoDB加入开机自启:

sudo chkconfig mongod on

3.停止MongoDB

sudo service mongod stop

4.重启MongoDB

sudo service mongod restart

5.开始使用MongoDB

mongo

卸载MongoDB

要从系统中完全删除MongoDB,必须删除MongoDB应用程序本身、配置文件和任何包含数据和日志的目录。下面的部分将指导您完成必要的步骤。

警告

这个过程完全地删除MongoDB及其配置,以及数据库。此过程是不可逆的,因此请确保在继续之前对所有配置和数据进行备份。

  1. 停止MongoDB

sudo service mongod stop

   2.删除安装包

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

   3.删除MongoDB数据库和日志文件

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo


版权声明:本文由静水流深发布,如需转载请注明出处。

分享给朋友:

相关文章

Ubuntu更换国内源

Ubuntu更换国内源

配置方法新手推荐使用图形界面配置: 系统设置 -> 软件和更新 选择下载服务器 -> "mirrors.aliyun.com"终端命令更改root用户登录用编辑器打开:...

在Ubuntu上安装MongoDB社区版

在Ubuntu上安装MongoDB社区版

导入包管理系统使用的公钥。wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | ...

在线升级Ubuntu版本

在线升级Ubuntu版本

启动软件更新程序按Superkey(Windows键)以启动Dash并搜索Update Manager。对于Ubuntu18.04或更高版本,单击桌面左下角的ShowApplications图标并搜索...

Ubuntu安装和配置Samba

Ubuntu安装和配置Samba

1.安装Samba要安装Samba,我们运行以下命令:sudo apt update sudo apt install samba我们可以通过运行以...

Deepin更换国内软件源

Deepin更换国内软件源

使用root权限用户或者sudo编辑/etc/apt/sources.list在文件最前面添加以下条目deb [by-hash=force] http://mirrors.aliyun.com/dee...

Linux系统下载,windows系统下载,winserver服务器os下载,Redhat下载,centos下载,ubuntu下载,debian下载,群晖DMS下载,系统os下载集合篇

Linux系统下载,windows系统下载,winserver服务器os下载,Redhat下载,centos下载,ubuntu下载,debian下载,群晖DMS下载,系统os下载集合篇

感谢访问李梦园个人博客---静水流深Linux系统下载,windows系统下载,各版本集合本文不定期更新,系统os来源为官方发布,但是一般官方下载速度那叫一个慢,为了方便大家现在整理集合在这里供大家下...