内容导航:
在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一枚,熟悉计算机网络方向,数据库技术的学习者。