MongoDB 部署(亲测有效)


目录

    • 前言
    • 一、环境
    • 二、安装
      • 2.1 Yum 安装
      • 2.2 二进制安装
    • 小结

前言

MongoDB 有两个版本:Community Edition(社区版)Enterprise Edition(企业版),不同版本适用于不同的平台,从 3.4 版本开始,已经不再支持 32 位 x86 平台,同时在较新版本 5.0+ 已经不再支持 RHEL / CentOS 6、Ubuntu 16.04、macOS 10.13,其他版本可支持的平台大家可以查看其官方文档https://docs.mongodb.com/manual/installation/,有详细说明,大家根据自己的系统版本选择对应的 MongoDB 版本,不要盲目安装。

一、环境

OS Server Version Port
CentOS 8.3(10.150.16.95) MongoDB 5.0+ 8090(默认27017)

二、安装

2.1 Yum 安装

1、配置包管理系统

vim /etc/yum.repos.d/mongodb-org-5.0.repo

[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

如果要安装其他版本,更改一下上面内容即可;

更改地方:

  • baseurl:xxx
  • gpgkey:xxx(或者说把 gpgcheck=1 改成 gpgcheck=0,就不用更改这一项了)

2、建立缓存

yum makecache

3、安装

# 安装最新版
yum install -y mongodb-org

# 安装指定版
yum install -y \
mongodb-org-5.0.3 \
mongodb-org-database-5.0.3 \
mongodb-org-server-5.0.3 \
mongodb-org-shell-5.0.3 \
mongodb-org-mongos-5.0.3 \
mongodb-org-tools-5.0.3

4、固定封装,防止意外升级(针对 yum 方式安装)

# 最新版本封装
echo "exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools" >> /etc/yum.conf

# 指定版本封装
echo "mongodb-org-5.0.5,mongodb-org-database-5.0.5,mongodb-org-server-5.0.5,mongodb-org-shell-5.0.5,mongodb-org-mongos-5.0.5,mongodb-org-tools-5.0.5" >> /etc/yum.conf

5、默认安装路径

  • /var/lib/mongo (数据目录)
  • /var/log/mongodb (日志目录)

6、更改默认路径(可选)

  • 新建空目录

    mkdir -p /data/mongodb/data               # 数据存储路径
    mkdir -p /data/mongodb/logs               # 日志存储路径
    touch /data/mongodb/logs/mongod.log
    
    # 修改属主和属组
    cd /data/
    chown -R mongod:mongod mongodb/
    
  • 修改配置文件

    ...
    # 日志路径配置
    systemLog:
      destination: file
      logAppend: true
      path: /data/mongodb/logs/mongod.log
    
    # 数据路径配置
    storage:
      dbPath: /data/mongodb/data
      journal:
        enabled: true
        
    # 其他配置
    net:
      port: 8090              # 自定义,不要冲突(默认端口27017)
      bindIp: 10.150.16.95    # 绑定自身IP
      ...
    

7、启动服务

[root@zhurs data]# systemctl enable mongod.service
[root@zhurs data]# systemctl start mongod.service
[root@zhurs data]# netstat -lntp |grep mongo
tcp        0      0 10.150.16.95:8090       0.0.0.0:*               LISTEN      1776642/mongod

如何卸载?

  • 停止 MongoDB

    systemctl stop mongod.service
    
  • 删除包

    yum remove -y `rpm -qa | grep mongodb-org`
    
  • 删除数据目录

    # 默认的(因为安装时会生成)
    rm -rf /var/log/mongodb
    rm -rf /var/lib/mongo
    
    # 自定义的
    rm -rf /data/mongodb
    

至此,yum 方式安装/卸载的步骤已经完成!!

2.2 二进制安装

安装包下载路径:

1、wget在线下载或上传至服务器并解压

tar -xzf mongodb-linux-x86_64xxx.tgz -C /opt/

2、添加环境变量(软连接)

ln -s  /opt/mongodb-linux-x86_64xxx/bin/* /usr/local/bin/

3、创建存储目录

mkdir -p /data/mongodb/data               # 数据存储路径
mkdir -p /data/mongodb/logs               # 日志存储路径
touch /data/mongodb/logs/mongod.log

4、创建 mongod 启动用户

默认情况下,MongoDB 使用mongod用户帐户运行。

useradd -r mongod -s /shin/nologin    # 创建一个非登录的系统用户

5、存储目录授权

chown -R mongod:mongod /data/mongodb/

6、创建配置文件

Github 获取:https://github.com/mongodb/mongo/blob/master/rpm/mongod.conf

vim /etc/mongod.conf
# 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: /data/mongodb/logs/mongod.log

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

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

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # 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:

主要修改几个部分:

  • systemLog.path: /data/mongodb/logs/mongod.log
  • storage.dbPath: /data/mongodb/data
  • processManagement.pidFilePath: /data/mongodb/data/mongod.pid
  • net.bindIp: 0.0.0.0(或本机IP)

7、配置 systemd 管理

cd /usr/lib/systemd/system/
cat >>mongodb.service<<"EOF"
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/bin/mongod --shutdown --config /etc/mongod.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

8、启动服务

[root@zhurs mongodb]# systemctl daemon-reload
[root@zhurs mongodb]# systemctl enable mongodb.service
[root@zhurs mongodb]# systemctl start mongodb.service
[root@zhurs mongodb]# netstat -lntp |grep mongo
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      1787469/mongod

如何卸载?

  • 停止 MongoDB

    systemctl stop mongod.service
    
  • 删除包(二进制)

    [root@zhurs opt]# which mongo
    /usr/local/bin/mongo
    [root@zhurs opt]# ll /usr/local/bin/mongo
    lrwxrwxrwx 1 root root 22 Dec 31 11:44 /usr/local/bin/mongo -> /opt/mongodb/bin/mongo
    [root@zhurs opt]# rm -rf /opt/mongodb
    
  • 删除数据目录

    # 自定义的
    rm -rf /data/mongodb
    

至此,二进制方式安装/卸载的步骤已经完成!!

小结

自工作以来,部署过无数种应用,刚开始接触的时候,是疯狂的从百度上查阅别人的博客教程,但最后会发现全部是坑,因为他们的一些配置非常不规范,非常容易出错。因此,以上的部署过程基本上都是参照官方部署文档来执行的,这样可以保证别人查阅我资料的时候尽量少踩坑,因为我们的博客是用来帮助别人的,而不是让别人来踩坑的,同时这也是对自己博客的一种规范。

<点击跳转至开头>

你可能感兴趣的:(NoSQL,mongodb,nosql,数据库,运维,linux)