# 下载安装包

进入MongoDB 官网 (opens new window),选择要下载的版本,下载安装包。

wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-server-4.0.8-1.el7.x86_64.rpm
wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-mongos-4.0.8-1.el7.x86_64.rpm
wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-tools-4.0.8-1.el7.x86_64.rpm
wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-shell-4.0.8-1.el7.x86_64.rpm
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.8.tgz

# 安装程序

执行如下命令安装 mongoDB 的服务端程序

$ rpm -ivh mongodb-org-server-4.0.8-1.el7.x86_64.rpm
警告:mongodb-org-server-4.0.8-1.el7.x86_64.rpm: 头V3 RSA/SHA1 Signature, 密钥 ID e52529d4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mongodb-org-server-4.0.8-1.el7   ################################# [100%]
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.

这里只是安装了 MongoDB 的服务端程序,如果还需要用命令行连接 mongoDB,则需要安装 shell 程序包

$ rpm -ivh mongodb-org-shell-4.0.8-1.el7.x86_64.rpm
警告:mongodb-org-shell-4.0.8-1.el7.x86_64.rpm: 头V3 RSA/SHA1 Signature, 密钥 ID e52529d4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mongodb-org-shell-4.0.8-1.el7    ################################# [100%]

如果需要一些附加工具,例如数据导入导出,则需要安装 tool 程序包

$ rpm -ivh mongodb-org-tools-4.0.8-1.el7.x86_64.rpm
警告:mongodb-org-tools-4.0.8-1.el7.x86_64.rpm: 头V3 RSA/SHA1 Signature, 密钥 ID e52529d4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mongodb-org-tools-4.0.8-1.el7    ################################# [100%]

如果要部署集群,则还需要安装 mongos 程序包

rpm -ivh mongodb-org-mongos-4.0.8-1.el7.x86_64.rpm

# 配置

安装好了以后,会生成一个 /etc/mongod.conf 的配置文件,配置了 mogoDB 默认的配置。默认的配置文件如下所示

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

这是一个 yaml 格式的配置文件 systemLog.path 指明了 mongoDB 的系统运行日志的路径
storage.dbPath 指定了 mongoDB 数据文件存放路径
processManagement.pidFilePath 指明了 mongoDB 运行时进程文件存放路径
net.port 指明了 mongodDB 服务的网络端口号
net.bindIp 则指定了 mongoDB 网络服务绑定的 ip 地址。

直接使用这些默认配置,mongoDB 就可以运行起来。但是,会存在以下的问题

  • 上面这些路径都是散落在操作系统的各个目录中,在实际情况中我们想在一个存储空间比较大的路径下来存储 mongoDB 的数据,同时将相关的一些文件都放在同一的目录下,例如这个路径是 /u1/mongodb 。/u1/mongodb/data 存储 mongoDB 存储的数据,/u1/mongodb/logs/目录存储日志文件。
  • 默认配置的网络服务绑定地址为 127.0.0.1 ,也就意味着默认情况下只能本机连接 mongoDB。
  • 采用的默认端口 27017 在一些情况下可能会遭到外部的攻击。需要改一个不太常用的端口。

新建一个文件夹,统一存放相关文件

# root @ single in /web [13:15:24]
$ mkdir -p /web/mongodb/data

# root @ single in /web [13:15:35]
$ mkdir -p /web/mongodb/logs

# root @ single in /etc [13:15:42]
$ chown -R mongod:mongod /web/mongodb

然后,将配置文件按如下修改:

变更端口为 37017,绑定地址变为 0.0.0.0,运行数据全部存放于/web/mongodb 目录下

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /web/mongodb/logs/mongod.log

# Where and how to store data.
storage:
  dbPath: /web/mongodb/data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /web/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 37017
  #bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
  bindIp:0.0.0.0

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

# 卸载

yum erase $(rpm -qa | grep mongodb-org)
上次更新: 2022/05/20 14:06:54