该文档提供MongoDB社区版在各Linux系统上的安装说明
【推荐的】
为了最佳安装体验,MongoDB为各Linux发行版提供了安装包,这些安装包为特定平台做了性能优化和TLS/SSL支持,是安装和运行MongoDB优选方式
注意:本文只翻译在RedHat企业版及相关Linux系统上用.rpm包安装MongoDB
对于没有提供安装包的系统,可参考手动安装教程
【手动安装】
对于没有提供安装包的Linux系统,MongoDB给予了一个通用Linux发行版,该版本的MongoDB不包含TLS/SSL,性能也不如特定平台的安装包高效,但在大多数Linux系统上都适用
== 在RHEL或CentOS上安装MongoDB社区版 ==
【概述】
该教程用于在64位的RHEL 6/7或CentOS 6/7上用.rpm包安装MongoDB
注意,MongoDB3.2起不支持RHEL5和CentOS5
【安装包】
以下是MongoDB提供的官方安装包:
mongodb-org 自动安装以下四个组件包的元安装包
mongodb-org-server 包含mongod程序和相关配置和初始化脚本,使用/etc/mongod.conf配置文件启动mongod
mongodb-org-mongos 包含mongos程序
mongodb-org-shell 包含mongo shell程序
mongodb-org-tools 包含各种MongoDB工具,如mongoimport、mongoexport、bsondump、mongodump、mongofiles、mongooplog、mongoperf、mongorestore、mongostat和mongotop
由安装包自带的配置文件默认为/etc/mongod.conf,其中bind_ip默认设置为127.0.0.1,在初始化复制集之前根据环境修改该配置
【安装MongoDB】
> 配置YUM
可直接使用yum命令安装MongoDB,创建/etc/yum.repos.d/mongodb-org-3.4.repo文件,写入以下内容:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
> 安装MongoDB
使用以下命令安装最新稳定版本的MongoDB:
$ sudo yum install -y mongodb-org
【运行MongoDB】
> 配置SELinux
如果开启SELinux,必须配置其允许MongoDB启动
有以下三个选项配置SELinux:
- 如果SELinux在enforcing模式,打开访问MongoDB的端口,默认配置下,执行以下命令完成
$ semanage port -a -t mongod_port_t -p tcp 27017
- 通过将/etc/selinux/config文件中的SELINUX参数设置为disabled以禁用SELinux,必须重启系统以使更改生效
SELINUX=disabled
- 在/etc/selinux/config文件中将SELINUX参数设置为permissive以配置SELinux为permissive模式,必须重启系统以使更改生效
SELINUX=permissive
也可使用setenforce命令将SELinux更改为permissive模式,setenforce命令不需要重启,但系统重启失效
另外,也可以在安装Linux操作系统时选择不安装SELinux包,或卸载当前系统里的相关SELinux包
> 数据目录和权限
MongoDB实例默认存储数据文件在/var/lib/mongo下,日志文件在/var/log/mongodb里,使用mongod用户运行,可以在/etc/mongod.conf文件中指定日志和数据文件的目录
如果想改变运行MongoDB进程的用户,必须修改/var/lib/mongo和/var/log/mongodb目录的访问控制权限,以让新用户可以访问这些目录
注意:在RHEL 7上,如果改变数据目录,但未修改SELinux的安全上下文,默认的SELinux策略会阻止mongod读写新的数据路径
> 操作步骤
1. 启动MongoDB
执行以下命令启动mongod进程
$ sudo service mongod start
2. 验证MongoDB启动成功
检查日志文件/var/log/mongodb/mongod.log的内容中有以下行
[initandlisten] waiting for connections on port
是MongoDB的监听端口,可在/etc/mongod.conf文件中配置,默认为27017
还可执行以下命令,让MongoDB跟随系统启动
$ sudo chkconfig mongod on
3. 关闭MongoDB
执行以下命令可关闭mongod进程
$ sudo service mongod stop
4. 重启MongoDB
sudo service mongod restart
可查看/var/log/mongodb/mongod.log文件输出的错误或重要信息,以跟踪mgond进程的状态
【卸载MongoDB】
从系统中完整移除MongoDB,必须移除MongoDB程序、配置文件、数据和日志目录,以下小节指导完成主要步骤
以下步骤将完整移除MongoDB、配置和所有数据库,该操作是不可逆的,执行前确保所有的配置和数据已经备份或彻底无用
1. 执行以下命令关闭mongod进程
$ sudo service mongod stop
2. 卸载程序包
$ sudo yum erase `rpm -qa | grep mongodb-org`
3. 移除数据和日志目录
$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongo
== 用源码包安装MongoDB社区版 ==
【概述】
编译版的MongoDB为未提供安装包的Linux提供了一个简单的安装MongoDB的方式,
注意:除非无可用的Linux安装包,否则不要使用这种安装方式
【安装MongoDB】
1. 下载最新版本的MongoDB源码包
$ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.2.tgz
2. 从Tar包中解压文件
$ tar -zxvf mongodb-linux-x86_64-3.4.2.tgz
3. 移到解压文件到目标目录
$ mv mongodb-linux-x86_64-3.4.2 mongodb
4. 确保可执行程序路径在环境变量PATH中
可执行程序在bin子目录里,增加以下行在shell的rc文件中,如~/.bashrc
export PATH=/bin:$PATH
替换为mongodb目录完整路径
【运行MongoDB】
1. 创建数据目录
在第一次启动MongoDB前,创建mongod进程读写数据的目录,以下命令创建默认的/data/db目录
$ mkdir -p /data/db
如果创建并使用其他目录,必须在启动mongod进程时用dbpath选项指定该目录
2. 设置数据目录的权限
在第一次启动MongoDB前,确保运行mongod的系统用户有读写数据和日志目录的权限
3. 运行MongoDB
根据实际情况执行mongod命令以启动MongoDB,如是否需要指定mongod路径或数据目录
- 不指定路径启动
如果系统变量PATH包含mongod程序的路径,并使用默认的数据目录(/data/db),只需键入mongod即可启动
$ mongod
- 指定mongod路径
如果系统变量PATH不包含mongod程序的路径,但使用默认的数据目录(/data/db),需键入mongod的完整路径
$ /mongod
- 指定数据目录路径
如果系统变量PATH包含mongod程序的路径,但不使用默认的数据目录,需使用--dbpath选项指定数据目录路径
$ mongod --dbpath