目录

(见右侧目录栏导航)
- 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
    首先安装依赖:

yum install libcurl openssl -y

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

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

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

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

1.2 运行MongoDB

(1)前提
    设置系统 ulimit

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

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

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

2. MongoDB 配置文件详解

2.1 说明

配置mongodb有两种方式:

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

2.2 配置文件格式

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

systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port:
setParameter:
enableLocalhostAuthBypass: false

2.3 配置文件的核心选项

2.3.1 systemLog 选项

systemLog:
verbosity: <int>
quiet: <boolean>
traceAllExceptions: <boolean>
syslogFacility: <string>
path: <string>
logAppend: <boolean>
logRotate: <string>
destination: <string>
timeStampFormat: <string>
component:
accessControl:
verbosity: <int>
command:
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 选项

processManagement:
fork: <boolean>
pidFilePath: <string>

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

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

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

2.3.3 net 选项

net:
port: <int>
bindIp: <string>
maxIncomingConnections: <int>
wireObjectCheck: <boolean>
ipv6: <boolean>
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <int>
http:
enabled: <boolean>
JSONPEnabled: <boolean>
RESTInterfaceEnabled: <boolean>
ssl:
sslOnNormalPorts: <boolean> # deprecated since 2.6
mode: <string>
PEMKeyFile: <string>
PEMKeyPassword: <string>
clusterFile: <string>
clusterPassword: <string>
CAFile: <string>
CRLFile: <string>
allowConnectionsWithoutCertificates: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
disabledProtocols: <string>
FIPSMode: <boolean>
compression:
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 选项

storage:
dbPath: <string>
indexBuildRetry: <boolean>
repairPath: <string>
journal:
enabled: <boolean>
commitIntervalMs: <num>
directoryPerDB: <boolean>
syncPeriodSecs: <int>
engine: <string>
mmapv1:
preallocDataFiles: <boolean>
nsSize: <int>
quota:
enforced: <boolean>
maxFilesPerDB: <int>
smallFiles: <boolean>
journal:
debugFlags: <int>
commitIntervalMs: <num>
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
inMemory:
engineConfig:
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 选项  

replication:
oplogSizeMB: <int>
replSetName: <string>
secondaryIndexPrefetch: <string>
enableMajorityReadConcern: <boolean>

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

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

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

systemLog:
destination: file
###日志存储位置
path: /mongodb/log/mongod.log
logAppend: true
storage:
##journal配置
journal:
enabled: true
##数据文件存储位置
dbPath: /mongodb/data/
##是否一个库一个文件夹
directoryPerDB: true
##数据引擎
engine: wiredTiger
##WT引擎配置
wiredTiger:
engineConfig:
##WT最大使用cache(根据服务器实际情况调节)
cacheSizeGB:
##是否将索引也按数据库名单独存储
directoryForIndexes: true
##表压缩配置
collectionConfig:
blockCompressor: zlib
##索引配置
indexConfig:
prefixCompression: true
processManagement:
fork: true # fork and run in background
pidFilePath: /mongodb/run/mongod.pid
##端口配置
net:
port:
bindIp: 192.168.118.11 # 配置副本集重要参数(使用副本集群的时候使用,单节点无需次选项)
replication:
oplogSizeMB:
replSetName: rs0

mongod.conf

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

3. 启动/关闭MongoDB服务

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

3.1 通过 mongod 命令启动

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

3.2 通过服务启动

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

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

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

[root@mongodb ~]# vim /lib/systemd/system/mongod.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=syslog.target network.target [Service]
Type=forking
User=mongodb
ExecStart=/mongodb/bin/mongod -f /mongodb/etc/mongod.conf
PrivateTmp=true
LimitNOFILE=
TimeoutStartSec= [Install]
WantedBy=multi-user.target

(3)启动与关闭

# 启动MongoDB并开机自启
[root@mongodb mongodb]# systemctl enable mongod ; systemctl start mongod
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.
[root@mongodb mongodb]# netstat -ntplu | egrep mongod
tcp 127.0.0.1: 0.0.0.0:* LISTEN /mongod # 关闭MongoDB
[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. P2323 [HNOI2006]公路修建问题

    题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 输入输出样例 输入样例#1: 4 2 5 1 2 6 5 1 3 3 1 2 3 9 4 2 4 6 1 输出样例# ...

  2. 【纪念】NOIP2018前夕——一些想说的话

    刚刚复习了一下相关的内容,决定一会儿就洗洗睡了.在睡觉之前,决定写点东西. 有的时候真的很迷茫,选择了一条超过自己能力范围的路,每天挣扎在各种各样难题的面前,文化成绩一落千丈……在从前觉得这一切都是有 ...

  3. Linux实用命令行

    对于Linux命令,我在学习和使用过程中是有一个循序渐进的过程的.适合小白学习快速使用.大笑 跳转目录:cd +路径 例如:cd /home/workspace 查看某个文件,常用的是查看日志:tai ...

  4. 洛谷P4630 [APIO2018] Duathlon 铁人两项 【圆方树】

    题目链接 洛谷P4630 题解 看了一下部分分,觉得树的部分很可做,就相当于求一个点对路径长之和的东西,考虑一下能不能转化到一般图来? 一般图要转为树,就使用圆方树呗 思考一下发现,两点之间经过的点双 ...

  5. 【bzoj2759】一个动态树好题

    Portal -->bzoj2759 Solution 哇我感觉这题真的qwq是很好的一题呀qwq 很神qwq反正我真的是自己想怎么想都想不到就是了qwq 首先先考虑一下简化版的问题应该怎么解决 ...

  6. Linux之Makefile20160707

    说一下LINUX下的Makefile,直接根据实际碰到的Makefile进行解读: 当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile:M=$(PWD ...

  7. Drivers Dissatisfaction 最小生成树+LCA

    题意:给一张n个点m条边的连通图,每条边(ai,bi)有一个权值wi和费用ci, 表示这条边每降低1的权值需要ci的花费.现在一共有S费用可以用来降低某些边的权值 (可以降到负数),求图中的一棵权值和 ...

  8. [Java多线程]-J.U.C.atomic包下的AtomicInteger,AtomicLong等类的源码解析

    Atomic原子类:为基本类型的封装类Boolean,Integer,Long,对象引用等提供原子操作. 一.Atomic包下的所有类如下表: 类摘要 AtomicBoolean 可以用原子方式更新的 ...

  9. nodejs文件压缩-使用gulp命令(安装过程)

    为了代码安全问题,一般发布程序的时候需要将js代码进行压缩,记录一下安装流程.避免忘记. 安装插件

  10. POJ 3348 Cows 凸包 求面积

    LINK 题意:给出点集,求凸包的面积 思路:主要是求面积的考察,固定一个点顺序枚举两个点叉积求三角形面积和除2即可 /** @Date : 2017-07-19 16:07:11 * @FileNa ...