目录

  • 前言
  • 一、环境
  • 二、安装
    • 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: filelogAppend: truepath: /data/mongodb/logs/mongod.log# 数据路径配置
    storage:dbPath: /data/mongodb/datajournal: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: filelogAppend: truepath: /data/mongodb/logs/mongod.log# Where and how to store data.
storage:dbPath: /data/mongodb/datajournal:enabled: true
#  engine:
#  wiredTiger:# how the process runs
processManagement:fork: true # fork and run in backgroundpidFilePath: /data/mongodb/data/mongod.pid  # location of pidfiletimeZoneInfo: /usr/share/zoneinfo# network interfaces
net:port: 27017bindIp: 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
    

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

小结

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

<点击跳转至开头>

MongoDB 部署(亲测有效)相关推荐

  1. Linux安装PHP MongoDB扩展(亲测)

    本文将讲述一下本人安装MongoDB扩展的过程,大家可以略作参考 亲测,但是一些步骤不太一样,比如 ./configure需要添加 --with-config参数 安装环境 Linux环境:CentO ...

  2. centos7安装MongoDB(亲测)

    简介 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类 ...

  3. uwsgi+django在ubuntu下命令部署亲测ok

    项目目录: 我的setting文件: """ Django settings for jango_one project.Generated by 'django-adm ...

  4. 在服务器上运行本地的项目 (部署亲测有效)转载请注明出处

    1)内容都是一样的就是文件名不同而已.底层是C语言的不过这第一步只针对现在使用的项目部署所需要的文件.后面的步骤就适合大部分项目了. libSDF_fabu.so, libSDF_zhuce.so, ...

  5. centos7.4.3 部署python-pcl亲测可用(采坑记)

    最近工作里用到PCL库,处理点云数据.点云抽稀能极大的减少点云数据. 通过python-pcl调用C++的PCL库.windows下运行ok,linux下部署踩了很多坑,试了多种办法,包括源码安装,都 ...

  6. 连接MongoDB 3.x 报 Authorization failed 解决办法(创建账号的部分亲测)

    最近安装了mongodb3.1.4,并启用了权限验证,在dos窗口下操作没有任何问题,为了维护方便就下载了一个客户端工具Robomongo 0.8.5,用户名.密码的等配置好点击测试,结果连接服务没有 ...

  7. 连接MongoDB 3.x 报 Authorization failed 解决办法(自己只用到了创建mongodb账号和密码的部分亲测)

    最近安装了mongodb3.1.4,并启用了权限验证,在dos窗口下操作没有任何问题,为了维护方便就下载了一个客户端工具Robomongo 0.8.5,用户名.密码的等配置好点击测试,结果连接服务没有 ...

  8. Oracle 数据怎么实时同步到 MongoDB | 亲测干货分享建议收藏

    摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,可以非常方便地完成 Oracle ...

  9. centos7.3部署django用uwsgi和nginx[亲测可用]

    centos7.3部署django用uwsgi和nginx[亲测可用] 现在nginx nginx version: nginx/1.10.2 uwsgi 2.0.17 django2.0.5 都已经 ...

  10. CentOS 8下 MySQL 8.0 安装部署(亲测)

    MySQL 8正式版8.0.11已发布,官方表示MySQL8要比MySQL 5.7快2倍,还带来了大量的改进和更快的性能!到底谁最牛呢?请看:MySQL 5.7 vs 8.0,哪个性能更牛? 下载地址 ...

最新文章

  1. DOM和Diff算法你应该知道的那些事,快收藏!
  2. 异步IO\数据库\队列\缓存
  3. eclipse html自动编译,eclipse不自动编译解决方法 不编译要怎么办
  4. c# linq的差集,并集,交集,去重【转】
  5. 利用python模拟菜刀反弹shell绕过限制
  6. ik分词器 分词原理_ElasticSearch 集成Ik分词器
  7. 广义动量定理之质量m的应用案例分析
  8. java 线程 listview_android使用Thread实现json数据的传递,并且使用ListView显示
  9. ros::spin() 和 ros::spinOnce() 区别及详解
  10. 日记 [2007年01月22日]QMAIL服务器完整安装手册-4
  11. win7 x64从IE10升级IE11失败
  12. 电信显示isp服务器连不上,电信拨号上网连接不上的原因是什么
  13. AtCoder Beginner Contest 156 D Bouquet 失之交臂 容斥原理+二项式定理+乘法逆元+快速幂+模后负数 多余担心
  14. 微信小程序如何创建云开发根目录
  15. 有了这款 GitHub 开源神器,以后再也不怕找不到电影资源啦!
  16. linux 目录 问号 原因,linux – 如何修复所有问号作为权限的目录
  17. 手机计算机游戏攻略,计算器游戏攻略 计算器游戏怎么玩
  18. 测试人生 | 从外行到外包,从手工测试到知名互联大厂测开 这个90后是怎么腾飞的?
  19. RSA算法习题 (采用RSA算法,其中e=7,p=11,q=13,求出公钥和私钥,并求出明文85进行加密后的密文。)
  20. ABAP---BDC批导入

热门文章

  1. 华为鸿蒙系统深圳,深圳华为鸿蒙系统
  2. 七、Openpyxl工作表对象的属性和方法-5(打印设置1/2)
  3. 峰回路转?贾跃亭重组班底拿融资;插画师的噩梦:AI能根据故事文本画图了;批量图片转文字;机器学习数据工程实战教程;前沿论文 | ShowMeAI资讯日报
  4. 身份证最后一位校验算法(ISO 7064:1983.MOD 11-2)
  5. 周记From 2016/8/24 to 2016/8/30
  6. 14-Teleport
  7. Wal-mart沃尔玛验厂有哪些内容 ?
  8. compressnet 管理实用程序
  9. mapgis如何制作1:50000标准图幅比例尺
  10. 读书三得:向钱穆大师学习读书方法