== 在Linux上安装MongoDB社区版 ==

该文档提供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
09-22 20:49