目录

(见右侧目录栏导航)
- 1. 安装Mongodb
    - 1.1 使用二进制包安装
    - 1.2 运行MongoDB
- 2. MongoDB 配置文件详解
    - 2.1 说明
    - 2.2 配置文件格式
    - 2.3 配置文件的核心选项
        - 2.3.1 systemLog 选项
        - 2.3.2 processMangement 选项
        - 2.3.3 net 选项
        - 2.3.4 storage 选项
        - 2.3.5 replication 选项
- 3. 启动/关闭MongoDB服务
    - 3.1 通过 mongod 命令启动
    - 3.2 通过服务启动

1. 安装Mongodb

官网下载地址:https://www.mongodb.com/download-center/community
官网Centos/RHEL安装教程:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

1.1 使用二进制包安装

(1)安装前准备
    OS:CentOS Linux release 7.2
    首先安装依赖:

  1. yum install libcurl openssl -y

(2)下载并解压
    MongoDB下载中心   这里采用 mongodb-linux-x86_64-rhel70-3.6.10.tgz 版本

  1. [root@mongodb src]# tar xf mongodb-linux-x86_64-rhel70-3.6..tgz
  2. [root@mongodb src]# mkdir -pv /mongodb
  3. mkdir: created directory ‘/mongodb
  4. [root@mongodb src]# cp -a mongodb-linux-x86_64-rhel70-3.6./bin/ /mongodb/

(3)添加MongoDB执行文件到环境变量PATH中

  1. [root@mongodb src]# echo "export PATH=$PATH:/mongodb/bin" >> /etc/profile.d/mongodb.sh
  2. [root@mongodb src]# . /etc/profile.d/mongodb.sh

1.2 运行MongoDB

(1)前提
    设置系统 ulimit

  1. [root@mongodb src]# egrep -v "^#|^$" /etc/security/limits.conf
  2. * soft nproc
  3. * hard nproc
  4. * soft nfile
  5. * soft nfile
  6. [root@mongodb src]# ulimit -SHn

(2)目录
    使用默认目录
    默认,MongoDB使用mongod用户和使用默认的目录
     /var/lib/mongo    数据目录
    /var/log/mongodb    日志目录
    
    这里我们不使用默认的目录,采取自行指定目录
    
    创建MongoDB 使用目录

  1. [root@mongodb ~]# mkdir -p /mongodb/{bin,data,etc,log,run}

2. MongoDB 配置文件详解

2.1 说明

配置mongodb有两种方式:

(1)通过mongod和mongos两个命令;
    (2)通过配置文件的方式(推荐使用)

2.2 配置文件格式

mongodb 配置文件采用的 YAML格式;
    
    例如:

  1. systemLog:
  2. destination: file
  3. path: "/var/log/mongodb/mongod.log"
  4. logAppend: true
  5. storage:
  6. journal:
  7. enabled: true
  8. processManagement:
  9. fork: true
  10. net:
  11. bindIp: 127.0.0.1
  12. port:
  13. setParameter:
  14. enableLocalhostAuthBypass: false

2.3 配置文件的核心选项

2.3.1 systemLog 选项

  1. systemLog:
  2. verbosity: <int>
  3. quiet: <boolean>
  4. traceAllExceptions: <boolean>
  5. syslogFacility: <string>
  6. path: <string>
  7. logAppend: <boolean>
  8. logRotate: <string>
  9. destination: <string>
  10. timeStampFormat: <string>
  11. component:
  12. accessControl:
  13. verbosity: <int>
  14. command:
  15. verbosity: <int>

==================重点参数==================
systemLog.destination
    类型:string
    作用:指定日志文件的路径,如果设置了这个值,必须指定systemLog.path.如果没有设置,日志会标准的输出到后台

systemLog.path
    类型:string
    作用:指定日志文件的目录

systemLog.logAppend
    类型:boolean
    默认值:False
    作用:当mongod或mongos重启时,如果为true,将日志追加到原来日志文件内容末尾;如果为false,将创建一个新的日志文件

=========================================

systemLog.timeStampFormat
    类型:string
    默认值:iso8601-local
    作用:为日志添加时间戳。

值     描述
ctime    显示时间戳格式为:Wed Dec 31 18:17:54.811
iso8601-utc    安装iso-8601-utc格式显示:1970-01-01T00:00:00.000Z
iso8601-local    按照iso8601-local格式显示:1969-12-31T19:00:00.000-0500
        
systemLog.traceAllExceptions
    类型:boolean
    作用: 为调试打印详细信息,用于支持相关的故障排除。
    
systemLog.syslogFacility
    类型:string
    默认值:user
    作用:将mongodb使用日志记录到系统日志中,如果要使用这个选项,必须开启--sysylog选项
    
 2.3.2 processMangement 选项

  1. processManagement:
  2. fork: <boolean>
  3. pidFilePath: <string>

==================重点参数==================
processMangement.fork
    类型:Boolean
    默认值:False
    作用:在前台启动Mongodb进程,如果Session窗口关闭,Mongodb进程也随之停止。不过Mongodb同时还提供了一种后台Daemon方式启动,只需要加上一个"--fork"参数即可,值得注意的是,用到了"--fork"参数就必须启用"--logpath"参数。如下所示:

  1. [root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork
  2. --fork has to be used with --logpath
  3. [root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork --logpath=log/mongodb.log
  4. all output going to: /opt/mongodb/log/mongodb.log
  5. forked process:

=========================================

2.3.3 net 选项

  1. net:
  2. port: <int>
  3. bindIp: <string>
  4. maxIncomingConnections: <int>
  5. wireObjectCheck: <boolean>
  6. ipv6: <boolean>
  7. unixDomainSocket:
  8. enabled: <boolean>
  9. pathPrefix: <string>
  10. filePermissions: <int>
  11. http:
  12. enabled: <boolean>
  13. JSONPEnabled: <boolean>
  14. RESTInterfaceEnabled: <boolean>
  15. ssl:
  16. sslOnNormalPorts: <boolean> # deprecated since 2.6
  17. mode: <string>
  18. PEMKeyFile: <string>
  19. PEMKeyPassword: <string>
  20. clusterFile: <string>
  21. clusterPassword: <string>
  22. CAFile: <string>
  23. CRLFile: <string>
  24. allowConnectionsWithoutCertificates: <boolean>
  25. allowInvalidCertificates: <boolean>
  26. allowInvalidHostnames: <boolean>
  27. disabledProtocols: <string>
  28. FIPSMode: <boolean>
  29. compression:
  30. compressors: <string>

==================重点参数==================
net.port
    类型:integer
    默认值:27017
    作用:设置mongodb的监听TCP端口
    
net.bindIp
    类型:string
    作用:设置mongodb服务器监听ip地址,默认是127.0.0.1;如果监听多个ip地址,使用逗号隔开

=========================================

net.maxIncomingConnections
    类型:integer
    默认值:65536
    作用:最大并发链接数
    
2.3.4 storage 选项

  1. storage:
  2. dbPath: <string>
  3. indexBuildRetry: <boolean>
  4. repairPath: <string>
  5. journal:
  6. enabled: <boolean>
  7. commitIntervalMs: <num>
  8. directoryPerDB: <boolean>
  9. syncPeriodSecs: <int>
  10. engine: <string>
  11. mmapv1:
  12. preallocDataFiles: <boolean>
  13. nsSize: <int>
  14. quota:
  15. enforced: <boolean>
  16. maxFilesPerDB: <int>
  17. smallFiles: <boolean>
  18. journal:
  19. debugFlags: <int>
  20. commitIntervalMs: <num>
  21. wiredTiger:
  22. engineConfig:
  23. cacheSizeGB: <number>
  24. journalCompressor: <string>
  25. directoryForIndexes: <boolean>
  26. collectionConfig:
  27. blockCompressor: <string>
  28. indexConfig:
  29. prefixCompression: <boolean>
  30. inMemory:
  31. engineConfig:
  32. inMemorySizeGB: <number>

==================重点参数==================
storage.dbPath
    类型:string
    默认值:/data/db(linux和macOS系统) ,\data\db(window系统)
    作用:设置数据存储文件目录

storage.journal.enabled
    类型:boolean
    默认值:true(64-bit系统);false(32-bit系统)
    作用:开启和关闭journal,为了保证数据文件的有效性和可恢复性;在设置了dbpath之后有效
    注:在in-memory存储引擎下不可用

========================================

storage.indexBuildRetry
    类型:boolean
    默认值:true
    作用:开启或关闭是否在mongod下次启动重建不完整的索引。
    注:在in-memory存储引擎下不可用
    
storage.repairPath
    类型:string
    默认值:在dbpath下的A _tmp_repairDatabase_<num> 文件目录
    作用:为进行恢复操作指定目录
    注意:仅仅在MMAPv1存储引擎下可用
    
2.3.5 replication 选项  

  1. replication:
  2. oplogSizeMB: <int>
  3. replSetName: <string>
  4. secondaryIndexPrefetch: <string>
  5. enableMajorityReadConcern: <boolean>

==================重点参数==================
replication.oplogSizeMB
    类型:integer
    作用:设置复制日志文件的大小;
    
replication.replSetName
    类型:string
    作用:副本集的名称
========================================

综上所有的重点参数,常用副本集配置文件如下:

[root@mongodb ~]# vim /mongodb/etc/mongod.conf

  1. systemLog:
  2. destination: file
  3. ###日志存储位置
  4. path: /mongodb/log/mongod.log
  5. logAppend: true
  6. storage:
  7. ##journal配置
  8. journal:
  9. enabled: true
  10. ##数据文件存储位置
  11. dbPath: /mongodb/data/
  12. ##是否一个库一个文件夹
  13. directoryPerDB: true
  14. ##数据引擎
  15. engine: wiredTiger
  16. ##WT引擎配置
  17. wiredTiger:
  18. engineConfig:
  19. ##WT最大使用cache(根据服务器实际情况调节)
  20. cacheSizeGB:
  21. ##是否将索引也按数据库名单独存储
  22. directoryForIndexes: true
  23. ##表压缩配置
  24. collectionConfig:
  25. blockCompressor: zlib
  26. ##索引配置
  27. indexConfig:
  28. prefixCompression: true
  29. processManagement:
  30. fork: true # fork and run in background
  31. pidFilePath: /mongodb/run/mongod.pid
  32. ##端口配置
  33. net:
  34. port:
  35. bindIp: 192.168.118.11
  36.  
  37. # 配置副本集重要参数(使用副本集群的时候使用,单节点无需次选项)
  38. replication:
  39. oplogSizeMB:
  40. replSetName: rs0

mongod.conf

配置文件详解:https://www.cnblogs.com/phpandmysql/p/7763394.html

3. 启动/关闭MongoDB服务

启动、关闭MongoDB的方式有两种:
    (1)通过命令mongod 直接启动
    (2)编写启动脚本,通过脚本启动(推荐使用)

3.1 通过 mongod 命令启动

  1. 启动:
  2. [root@mongodb ~]# mongod -f /mongodb/etc/mongod.conf
  3. about to fork child process, waiting until server is ready for connections.
  4. forked process:
  5. child process started successfully, parent exiting
  6. 关闭:
  7. [root@mongodb ~]# mongod -f /mongodb/etc/mongod.conf --shutdown
  8. killing process with pid:

3.2 通过服务启动

(1)创建服务启动用户:

  1. [root@mongodb ~]# groupadd mongodb
  2. [root@mongodb mongodb]# useradd -r -d /mongodb/data -s /sbin/nologin -g mongodb mongodb
  3. [root@mongodb ~]# chown -R mongodb:root /mongodb/

(2)编写服务脚本如下:

  1. [root@mongodb ~]# vim /lib/systemd/system/mongod.service
  2. [Unit]
  3. Description=High-performance, schema-free document-oriented database
  4. After=syslog.target network.target
  5.  
  6. [Service]
  7. Type=forking
  8. User=mongodb
  9. ExecStart=/mongodb/bin/mongod -f /mongodb/etc/mongod.conf
  10. PrivateTmp=true
  11. LimitNOFILE=
  12. TimeoutStartSec=
  13.  
  14. [Install]
  15. WantedBy=multi-user.target

(3)启动与关闭

  1. # 启动MongoDB并开机自启
  2. [root@mongodb mongodb]# systemctl enable mongod ; systemctl start mongod
  3. Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.
  4. [root@mongodb mongodb]# netstat -ntplu | egrep mongod
  5. tcp 127.0.0.1: 0.0.0.0:* LISTEN /mongod
  6.  
  7. # 关闭MongoDB
  8. [root@mongodb mongodb]# systemctl stop mongod

MongoDB 3.x 安装配置的更多相关文章

  1. 【MongoDB】MongoDB的下载 安装 配置及使用

    windows系统  教程 1.下载地址   (官方提供根据系统位数选择对应的bit.exe下载) 由于自己win32系统不支持该官方版本,在网上又找了个 mongodb-win32-i386版本 p ...

  2. mongodb下载及安装配置教程【仅供参考】

    1 下载 下载页面地址:https://www.mongodb.org/downloads 版本选择:电脑系统是64位的,所以我选择了 Windows 64-bit 2008 R2+ ,msi包 2 ...

  3. MongoDB入门,安装配置与基本CURD操作

    MongoDB特点 MongoDB是NoSQL的一种,非关系型数据库,或者叫不只是关系型数据库(Not Only SQL).MongoDB采用json格式的文档存储,与Redis的key-value有 ...

  4. mongodb在Windows安装配置及遇到的问题、java连接测试

    一.安装 1.访问mongodb的官网http://www.mongodb.org/downloads下载64bit的包,我下载的是mongodb-win32-x86_64-2008plus-ssl- ...

  5. Centos下MongoDB数据库的安装以及配置开机自启动(三)

    最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. 在服务器上完全可以用yum来安装管 ...

  6. ubuntu kylin 14.04安装配置MongoDB v2.6.1(转)

    1.获取最新版本 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz 2.解压并进入bin目录 tar zxvf mongo ...

  7. MongoDB Windows环境安装及配置

    MongoDB一般安装 1.首先到官网(http://www.mongodb.org/downloads )下载合适的安装包,目前的最新版本为2.6 安装包有zip和msi格式的,这里推荐下载zip格 ...

  8. 【转载】CentOS6.5_X64下安装配置MongoDB数据库

    [转载]CentOS6.5_X64下安装配置MongoDB数据库 2014-05-16 10:07:09|  分类: 默认分类|举报|字号 订阅      下载LOFTER客户端 本文转载自zhm&l ...

  9. 1. 初探MongoDB —— 介绍、安装和配置

    一.写在前面 之前一直以来,都是使用关系型数据库.也很早就听闻,当数据量大的时候,关系型数据库使用起来会有很多问题.诸如查询数据慢,加载花费时间长等等. 也早就耳闻NOSQL(NoSQL = Not ...

随机推荐

  1. java中main函数怎么调用外部非static方法

    使用外部方法时(不管是static还是非static),都要先new一个对象,才能使用该对象的方法. 举例如下: 测试函数(这是错误的): public class Test { public sta ...

  2. jQuery多重事件绑定

    1. <a> a标签默认绑定了一个onclick事件,当自己再写一个onclick事件的时候,默认自己写的那个优先执行. 如下程序,先执行(123),然后再发生跳转. <!DOCTY ...

  3. Unity3D手游开发日记(3) - 场景加载进度条的完美方案

    我以为做个进度条很简单,分分钟解决,结果折腾了一天才搞定,Unity有很多坑,要做完美需要逐一解决. 问题1:最简单的方法不能实现100%的进度 用最简单的方法来实现,不能实现100%的进度,原因是U ...

  4. C++堆和栈详解(转)

    一.预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1.栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等.其    操 ...

  5. Codeforces Global Round 2 题解

    Codeforces Global Round 2 题目链接:https://codeforces.com/contest/1119 A. Ilya and a Colorful Walk 题意: 给 ...

  6. php开启压缩gzip

    php服务的开启压缩,节省带宽 看是否开启压缩的网站 http://www.cnblogs.com/GaZeon/p/5421906.html 找到php.ini,修改下面的 ,重启php-fpm z ...

  7. flask学习之解决Internal Server Error问题的方式之一

    最近在学习flask web development的时候,遇到了这么一个问题,就是照着书上敲的代码,跑起来是Internal server error,由于中途学的时候为了方便,改用pycharm来 ...

  8. 题解【bzoj3240 [NOI2013]矩阵游戏】

    挖坑2333 等我把代码写完了再写

  9. Nginx -- proxy_pass配置

    一.proxy_pass 作用域: location 不影响浏览器地址栏的url 设置被代理server的协议和地址 协议可以为http或https 地址可以为域名或IP 二.配置规则 2.1 测试环 ...

  10. 「Django」rest_framework学习系列-视图

    方式一 1.settings设置 INSTALLED_APPS = [ ... 'rest_framework', ] 2.views设置 from rest_framework.response i ...