本文档是在mongodb为3.4下编写的,仅作为参考,详细内容请参考:https://docs.mongodb.com/manual/reference/configuration-options/#configuration-file

一.说明

配置mongodb有两种方式,一种是通过mongod和mongos两个命令;另外一种方式就是配置文件的方式。因为更容易去管理,所以后者更受大家的青睐。

二. 配置文件格式

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: 27017
setParameter:
enableLocalhostAuthBypass: false

三 使用配置文件

通过mongod和mongos命令去执行配置文件,这里要使用他们的一个选项--config(这里是两个横线,具体查看 > mongod --help)或者-f(--config的简写)

例如:

mongod --config  D:/mongodb/mongod.conf

mongos --config  D:/mongodb/mongos.conf

  或

mongod -f  D:/mongodb/mongod.conf

mongos -f  D:/mongodb/mongos.conf

四 配置文件的核心选项

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.traceAllExceptions

类型:boolean

作用: 为调试打印详细信息,用于支持相关的故障排除。

systemLog.syslogFacility

类型:string

默认值:user

作用:将mongodb使用日志记录到系统日志中,如果要使用这个选项,必须开启--sysylog选项

systemLog.path

类型:string

作用:指定日志文件的目录

syetemLog.logAppend

类型:boolean

默认值:False

作用:当mongod或mongos重启时,如果为true,将日志追加到原来日志文件内容末尾;如果为false,将创建一个新的日志文件

systemLog.destination

类型:string

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

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

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: 3300

  daemon方式启动的fork参数也可以配置配置文件中,如下所示:

port=27017
dbpath=data/db
logpath=log/mongodb.log
logappend=true
fork=true

 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

作用:最大并发链接数

net.ipv6

类型:boolean

默认值:false

作用:开启或关闭支持ipv6地址;

security 选项

security:
keyFile: <string>
clusterAuthMode: <string>
authorization: <string>
transitionToAuth: <boolean>
javascriptEnabled: <boolean>
redactClientLogData: <boolean>
sasl:
hostName: <string>
serviceName: <string>
saslauthdSocketPath: <string>
enableEncryption: <boolean>
encryptionCipherMode: <string>
encryptionKeyFile: <string>
kmip:
keyIdentifier: <string>
rotateMasterKey: <boolean>
serverName: <string>
port: <string>
clientCertificateFile: <string>
clientCertificatePassword: <string>
serverCAFile: <string>
ldap:
servers: <string>
bind:
method: <string>
saslMechanisms: <string>
queryUser: <string>
queryPassword: <string>
useOSDefaults: <boolean>
transportSecurity: <string>
timeoutMS: <int>
userToDNMapping: <string>
authz:
queryTemplate: <string>

  ....查看mongodb手册 #security选项

setParameter 选项

设置mongodb参数,查看参数列表

采用YAML语言格式

setParameter:
<parameter1>: <value1>
<parameter2>: <value2>

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.indexBuildRetry

类型:boolean

默认值:true

作用:开启或关闭是否在mongod下次启动重建不完整的索引。

注:在in-memory存储引擎下不可用

storage.repairPath

类型:string

默认值:在dbpath下的A _tmp_repairDatabase_<num> 文件目录

作用:为进行恢复操作指定目录

注意:仅仅在MMAPv1存储引擎下可用

storage.journal.enabled

类型:boolean

默认值:true(64-bit系统);false(32-bit系统)

作用:开启和关闭journal,为了保证数据文件的有效性和可恢复性;在设置了dbpath之后有效

注:在in-memory存储引擎下不可用

storage.directoryPerDB

类型:boolean

默认值:false

作用:当为true,mongodb为每个数据库建立一个单独的路径,这个路径是在dbpath下创建的;每次创建需要重启服务器

注:在in-memory存储引擎下不可用

storage.engine

默认值:wiredTiger

作用:这是数据存储引擎

描述
MMAPV1 MMAPCV1 storage engine
wiredTiger WiredTiger Storage Engine.
inMemory In-Memory Storage Engine.

storage.mmapv1 选项

storage:
mmapv1:
preallocDataFiles: <boolean>
nsSize: <int>
quota:
enforced: <boolean>
maxFilesPerDB: <int>
smallFiles: <boolean>
journal:
debugFlags: <int>
commitIntervalMs: <num>

  storage.mmapv1.preallocDataFiles

类型:boolean

默认值:true

作用:开启或关闭数据文件的预分配;

storage.mmapv1.quota.enforced

类型:boolean

默认值:false

作用:开启或关闭每个数据库中的数据文件个数的限额;默认是每个数据库最多有8个数据文件,通过调整storage.mmapv1.quota.maxFilesPerDB

storage.mmapv1.quota.maxFilesPerDB

  类型:integer

默认值:8

作用:设置每个数据库中数据文件的限制个数;

storage.wiredTiger 选项

storage:
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>

  storage.wiredTiger.engineConfig.cacheSizeGB

类型:float

作用:设置缓存大小,从3.4版本开始,内存的50%-1GB 和256MB的最大值

storage.wriedTiger.engineConfig.journalCompressor

默认值:snappy

作用:设置journal压缩方式;可选项:none/snappy/zlib

storage.inmemory 选项

storage:
inMemory:
engineConfig:
inMemorySizeGB: <number>

  storage.inmemory.engineConfig.inMemorySizeGB

类型:float

默认值:物理内存的50%-1GB

作用:设置缓冲区大小;

opeartionProfiling 选项

operationProfiling:
slowOpThresholdMs: <int>
mode: <string>

  opeartionProfiling.slowOpThresholdMs

类型:integer

默认值:100

作用:设置区分慢查询的一个阈值,比如100,当查询速度大于100ms,记录到日志中

operationProfiling.mode

类型:string

默认值:off

replication 选项

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

  replication.oplogSizeMB

类型:integer

作用:设置复制日志文件的大小;

sharding 选项

sharding:
clusterRole: <string>
archiveMovedChunks: <boolean>

sharding.clusterRole

类型:string

作用:设置分片集群中的角色;

值   描述
configsvr 作为配置服务器,默认端口27019
shardsvr 作为一个分片,默认端口27018

auditLog 选项 (MongoDB Enterprise可用)

auditLog:
destination: <string>
format: <string>
path: <string>
filter: <string>

  auditLog.destination

类型:string

作用:审计日志位置;

描述
syslog JSON文件格式输出在系统日志中,window系统中不可用
console JSON格式输出
file 输出到文件

auditLog.format

类型:string

作用:设置设计日志输出格式;可用值:JSON/BSON

auditLog.path

类型:string

作用:设计日志输出文件路径

auditLog.filter

类型:string

作用:审计日志过滤器

格式:{ <field1>: <expression1>, ... }

mongodb 配置文件的更多相关文章

  1. MongoDB配置文件YAML-based选项全解

    配置文件部分 MongoDB引入一个YAML-based格式的配置文件.2.4版本以前的仍然兼容. 我的mongodb配置文件: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  2. mongodb配置文件

    启动MongoDB有2种方式,一是直接指定配置参数,二是指定配置文件.这里先介绍配置文件,启动方式如下: 1.mongod --config /etc/mongodb.conf 配置如下: verbo ...

  3. MongoDB 配置文件启动

    MongoDB 服务启动有两种方式:一种是直接命令启动,一种是通过配置文件启动 1.命令启动: mongod -dbpath C:\data\db -logpath C:\data\log\mongo ...

  4. 【mongodb系统学习之六】mongodb配置文件方式启动

    六.mongodb可以用配置文件启动,配置文件配好后,每次指定文件就好,而不用每次写一长串: 1).创建配置文件: 2).配置(例如指定数据存储目录,日志存储文件,后台进程,端口号等): 3).配置文 ...

  5. 踩坑之mongodb配置文件修改

    一.说明 本文档是在mongodb为3.4下编写的,仅作为参考 配置mongodb有两种方式,一种是通过mongod和mongos两个命令:另外一种方式就是配置文件的方式.因为更容易去管理,所以后者更 ...

  6. 【配置】MongoDB配置文件详细配置

    # 数据文件位置 dbpath = /opt/module/mongoData # 日志文件位置 logpath = /opt/module/mongoLog/mongodb.log # 以追加方式写 ...

  7. mongodb配置文件与启动

    数据库配置文件 mongo.cnf #日志文件位置 logpath=/data/db/journal/mongodb.log (这些都是可以自定义修改的) # 以追加方式写入日志 logappend= ...

  8. MongoDB配置文件及添加用户

    一.参数启动mongodb $ mongod --bind_ip=0.0.0.0 二.配置文件: mongod.conf # 后台运行 fork=true # 数据存储文件目录 dbpath=/roo ...

  9. mongodb 配置文件解释(转)

    Mongodb 3.x配置说明,本文内容忽略了Enterprise版和一些不常用的配置. 一.配置说明 在Mongod安装包中,包含2个进程启动文件:mongod和mongos:其中mongd是核心基 ...

随机推荐

  1. IDEA内置git功能的使用教程

    IDEA内置git功能的使用教程 IDEA git  IDEA被公认为是最好的java开发工具,除了在代码助手.代码提示.重构工具等方面有比较好的支持,还在各类版本控制工具(git.tfs.svn.g ...

  2. python之内置装饰器(property/staticmethod/classmethod)

    python内置了property.staticmethod.classmethod三个装饰器,有时候我们也会用到,这里简单说明下 1.property 作用:顾名思义把函数装饰成属性 一般我们调用类 ...

  3. 4 spring 创建对象的三种方式

    方式1. 通过构造方法创建     1.1 无参构造创建:默认情况.     1.2 有参构造创建:需要明确配置         1.2.1 需要在类中提供有参构造方法         1.2.2 在 ...

  4. 串口USB单一映射及重命名

    本文针对在开发过程中有时会出现用到多个串口设备,usb端口号会发生变化,如设备的灯指示信号和其他控制器都是ttyUSB* .其序号与控制接入的顺序有关,对于写好的launch每次修改串口连接名很麻烦. ...

  5. Android Studio 快捷键总结(OS X)

      Action shortcut key 解释 跳转到类 cmd+0   跳转到文件 cmd+shift+0   跳转到函数 cmd+alt+0   最近打开的文件 cmd+e   最近编辑的文件 ...

  6. Apache Commons Digester 二(规则模块绑定-RulesModule、异步解析-asyncParse、xml变量Substitutor、带参构造方法)

    前言 上一篇对Digester做了基本介绍,也已经了解了Digester的基本使用方法,接下来将继续学习其相关特性,本篇主要涉及以下几个内容: 规则模块绑定,通过定义一个RulesModule接口实现 ...

  7. DP的学习

    DP在ACM的算法里面可算是重中之重,题目类型千变万化,题目难度差异也很大.是一种很讲究技巧的算法,而且代码实现相对容易,1y率非常高(除有些bt数据外).总之DP就是一向非常重要,又非常博大精深的算 ...

  8. linux centos7 root密码重置

    转:http://blog.chinaunix.net/uid-21209618-id-4738916.html 分类: LINUX 三年左右没接触linux技术工作,忘记的有很多.不知该怎么去运用. ...

  9. [转]谈谈Java中"=="与"equals()"

    equals是Object超类中的一个方法,这个方法的实现就是通过==号实现的,==号比较的是两个对象的地址是否相同,在代码中体现出来就是比较两个对象引用中保存的地址是否相同,==能够判断的只是两个对 ...

  10. 四、windows下TortoiseGit的使用与操作

    使用 Git命令有时候确实不怎么方便,特别是每次都要输入密码,如果配置 SSH 的方式,又实在是很麻烦.(当然,必须使用 Windows 神器才有方便友好的客户端图形界面啦!!!) 关于 Tortoi ...