### MONGODB配置文件
#### [官方地址](https://docs.mongodb.com/manual/reference/configuration-options/)
# mongod.conf http://docs.mongodb.org/manual/reference/configuration-options/
# mongodb的配置文件
# 配置日志
systemLog:
verbosity: 5 #日志级别:范围是0-5,0是MongoDB的默认日志级别,5包含了debug信息
quiet: false #安静模式,是否输出日志
traceAllExceptions: true #是否打印详细的日志信息,开启
# syslogFacility: <string> #将日志输出到系统日志中,如果使用该功能,则systemLog.destination=syslog.
# path: <string>
# logAppend: <boolean>
# logRotate: <string>
# destination: <string>
# timeStampFormat: <string>
# component:
# accessControl:
# verbosity: <int>
# command:
# verbosity: <int>
destination: file #mogodb日志的产生方式:file=指定的文件,syslog系统日志,如果不指定,则指向标准输出流。
logAppend: true #在mongodb重启时,继续往已有的日志文件中追加内容,而不是新建一个文件.
path: /data/mongodb/mongod.log #日志文件的输出路径,mongo将在指定的位置创建日志文件.
logRotate: reopen #3.0.0,两个值:rename=重命名日志文件,reopen=关闭并重新打开日志文件.如果使用reopen则要使systemLog.logAppend=true.
timeStampFormat: iso8601-utc #日志中时间戳的格式:ctime=Wed Dec 31 18:17:54.811,iso8601-utc=1970-01-01T00:00:00.000Z,#iso8601-local=本地时间格式
#日志组件的具体选项
component:
#索引操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
index:
verbosity: 5
#查询操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
query:
verbosity: 5
#复制操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
replication:
verbosity: 5
#心跳相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.6
#heartbeats:
#verbosity: 5
#回滚相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.6
#heartbeats:
#verbosity: 5
#写操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
write:
verbosity: 5
#访问控制相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
accessControl:
verbosity: 5
#命令相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
command:
verbosity: 5
#控制操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
control:
verbosity: 5
#诊断消息相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.2
ftdc:
verbosity: 5
#地理空间解析相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
geo:
verbosity: 5
#网络操作相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
network:
verbosity: 5
#分片相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
sharding:
verbosity: 5
#存储相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
storage:
verbosity: 5
#日志组件相关的日志消息级别,分为0-5,0表示info级别的日志,依次增加,5表示包含debug信息.version:3.0
journal:
verbosity: 5
# 进程管理配置
processManagement:
fork: true # 以守护线程模式在后台运行
pidFilePath: /data/mongodb/mongod.pid # 指定保存PID的文件。
#时区文件:https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip
#timeZoneInfo: #加载数据库时区的完整路径,如果不指定,则采用默认时区。
# 网络配置
net:
port: 27017 #mongodb监听的TCP端口
bindIp: 0.0.0.0 #允许访问的IP地址集合,不设置默认是127.0.0.1,如果需要设置多个路径可以通过[,]分割,例如:A,B,C
#bindIpAll: true #是否绑定所有的IP,允许访问. version:3.6
maxIncomingConnections: 65536 #最大连接数,默认65536
wireObjectCheck: true #验证客户端的所有请求,防止客户端插入恶意或者无效的BSON数据,对于高度嵌套的自问当对象,性能影响很小.
ipv6: false #启用或禁用ipv6支持.
#启用或者禁用在*UNIX套接字进行侦听.
#unixDomainSocket:
#enabled: true #启用或者禁用在*UNIX套接字进行侦听.
#pathPrefix: <string> #套接字的路径
#filePermissions: <int> #套接字文件权限
#3.6版本删除http选项,改为了ssl.
# ssl:
#sslOnNormalPorts: <boolean> # 被2.6版本启用,改用mode: requireSSL.
#启用TSL/SSL:
# disabled=不启用TLS/SSL,
# allowSSL=服务器之间不使用TLS/SSL,传入链接可以是TLS/SSL或者非TLS/SSl.
# preferSSL=服务器之间不使用TLS/SSL,传入链接可以是TLS/SSL或者非TLS/SSl.
# requireSSL=服务器仅使用并接受TLS/SSL加密链接.
#mode: disabled
#PEMKeyFile: <string> #.pem证书存放的绝对或相对路径.
#PEMKeyPassword: <string> #用于解密PEM的密钥文件.
#clusterFile: <string> #集群或副本集内部身份验证的PEM文件.
#clusterPassword: <string> #集群或副本集用于解密内部验证PEM文件的密钥.
#CAFile: <string> #.pem包含证书颁发机构跟证书链的文件的相对或绝对路径.
#CRLFile: <string> #.pem包含证书吊销列表的文件的相对或绝对路径.
#allowConnectionsWithoutCertificates: false #弱证书验证
#allowInvalidCertificates: <boolean> #允许使用无效证书,关闭证书检查
#allowInvalidHostnames: <boolean> #允许使用无效的主机名,禁用主机名校验
#disabledProtocols: <string> #禁用指定协议
#FIPSMode: <boolean> #启用或禁用使用安装OpenSSL库的的FIPS模式
#zlib压缩器的支持,add to Version:3.4,version:3.6,默认使用snappy.
#如果各方不共用至少一个通用压缩器,则双方之间的消息是未压缩的.
#compression:
#compressors: snappy
#指定传输层通知方式,默认asio,version:3.6
#transportLayer: asio
#指定线程对客户端请求的执行模型:synchronous=使用同步网络并在每个链接的基础上管理其网络线程池.adaptive:使用新的实验性的异步网络模式.
#其中当值为adaptive,要求#transportLayer的值为asio.
#serviceExecutor: <string>
#安全管理
#security:
#keyFile: <string> #存储共享密钥的密钥文件的路径
#用于集群身份验证的身份验证模式
# - keyFile:使用密钥文件进行身份验证.
# - sendKeyFile: 发送密钥文件用于身份验证,可以接受密钥文件和x.509证书.
# - sendX509:发送x.509文件进行身份验证,可以接受密钥文件和x.509证书.
# - x509:推荐使用,发送x.509证书进行身份验证,且只接受x.509证书.
#clusterAuthMode: <string>
#启用或禁用基于角色的控制访问(RBAC)来控制每个用户对数据库资源和操作的访问。
# - enabled:用户只能访问被授权的数据库资源和操作.
# - disabled:用户可以访问任何资源和进行任何操作.
#authorization: <string>
#transitionToAuth: <boolean> #用户可以在没有任何访问控制检查的情况下访问机器,并进行读写和管理操作. version:3.4
#javascriptEnabled: <boolean> #启用或禁用服务器端javascript的执行.
#redactClientLogData: <boolean> #记录日志的时候,将数据也记录下来. version:3.4 AND ONLY MongoDB Enterprise
#配置SASL
#sasl:
#hostName: <string> #用于配置SASL和Kerberos身份验证的完全限定服务器域名.
#serviceName: <string> #使用SASL的服务的注册名称.
#saslauthdSocketPath: <string> #UNIX域套接字文件的路径.
#enableEncryption: <boolean> #为WiredTiger存储引擎启用机密.
#encryptionCipherMode: <string> #静态加密的密码模式:AES256-CBC=密码块链接模式下的256位高级加密标准,
#AES256-GCM=Galois / Counter模式下的256位高级加密标准
#encryptionKeyFile: <string> #通过KMIP 以外的进程管理密钥时,本地密钥文件的路径[MongoDB Enterprise]
#
#注意:security.kmip只能用于mongodb的企业版本,且版本需要高于3.2.
#
#kmip:
#keyIdentifier: <string> #KMIP服务器中现有秘钥的唯一KNIP标识符.version:3.2
#rotateMasterKey: <boolean> #旋转主秘钥并重新加密内部秘钥库.version:3.2[MongoDB Enterprise]
#serverName: <string> #运行KMIP服务器的密钥管理解决方案的主机名或IP地址.[MongoDB Enterprise]
#port: <string> #KMIP服务器正在监听的端口号。
#clientCertificateFile: <string> #包含用于向KMIP服务器验证MongoDB的客户端证书路径的字符串。
#clientCertificatePassword: <string> #用于解密客户端证书(即security.kmip.clientCertificateFile)的密码
#serverCAFile: <string> #CA文件的路径。用于验证与KMIP服务器的安全客户端连接。
#
#注意:security.ldap只能用于mongodb的企业版本,且版本需要高于3.4.
#
# ldap:
# servers: <string> #通过LDAP确定执行操作的用户是否被授权,多个服务器之间可以通过[,]分割.
# bind:
# method: <string> #该方法mongod或mongos用于向LDAP服务器进行身份验证。
# - simple- mongod或mongos使用简单的身份验证。
# - sasl- mongod或mongos使用SASL协议进行身份验证
# saslMechanisms: <string> #以逗号分隔的SASL机制列表.
# queryUser: <string> #绑定LADP查询用户.
# queryPassword: <string> #绑定LADP服务器的密码.
# useOSDefaults: <boolean> #连接到LDAP服务器时,允许mongod或mongos使用Windows登录凭据进行身份验证或绑定。
# transportSecurity: <string> #默认情况下,mongod或mongos创建一个到LDAP服务器的TLS / SSL安全连接.
# timeoutMS: <int> #等待LDAP服务器响应请求时间(毫秒).
# userToDNMapping: <string> #用于验证的用户名映射到LDAP专有名称(DN)。
# - match=ECMAScript格式的正则表达式(正则表达式)与提供的用户名匹配。
# 每个括号包围的部分表示由substitutionor 使用的正则表达式捕获组ldapQuery。
# - substitution=LDAP专有名称(DN)格式化模板。
# - ldapQuery=LDAP查询格式化模板.
# authz:
# queryTemplate: <string> #一个相对的LDAP查询URL.
#
# 属性设置选项
#
#setParameter:
# ldapUserCacheInvalidationInterval: <int> #用于使用LDAP授权mongod或mongos使用LDAP授权的服务器(秒)。
# <parameter1>: <value1>
# <parameter2>: <value2>
# 存储设置
storage:
dbPath: /data/mongodb #mongod实例存储数据的目录,默认值:/data/db.
indexBuildRetry: true #指定mongodb在下次启动时是否重建不完整的索引,默认:true.
# repairPath: <string>
# MongoDB在--repair操作过程中将使用的工作目录 。
# 当--repair完成后,storage.repairPath目录是空的,并且 dbPath包含了修复的文件。
# 该storage.repairPath设置仅适用于mongod。
# 仅适用于mongod使用MMAPv1存储引擎的实例。
journal:
enabled: true #启用或禁用耐久性日志以确保数据文件保持有效并可恢复。64bit默认开启,32bit默认关闭.
# 不适用于mongod使用内存存储引擎的实例 。
commitIntervalMs: 100 #mongod日志操作之间进程允许的最大时间量(毫秒),范围是1-500,默认值是100,
# 该值太低会增加日志的持久性,但是会牺牲磁盘性能.
# 该storage.journal.commitIntervalMs设置仅适用于mongod。
# 不适用于mongod使用内存存储引擎的实例 。
# directoryPerDB: <boolean> #MongoDB使用单独的目录来存储每个数据库的数据。
# 目录位于storage.dbPath目录下,并且每个子目录名称都与数据库名称相对应。
# 3.0版本有变更.
# syncPeriodSecs: <int> #在MongoDB将数据通过sync操作刷新到数据文件之前可以传递的时间量,默认60s.
# 不要在生产系统上设置此值。在几乎所有情况下,您都应该使用默认设置。
# engine: <string> #mongod数据库的存储引擎。
# 仅在MongoDB Enterprise中可用,3.0版本中的新功能,从MongoDB 3.2开始,wiredTiger是默认值。
# mmapv1=指定MMAPv1存储引擎。
# wiredTiger=指定WiredTiger存储引擎。
# inMemory=指定内存中存储引擎。
mmapv1:
preallocDataFiles: true #启用或禁用数据文件的预分配。默认情况下,MongoDB不预先分配数据文件。
nsSize: 16 #命名空间文件的默认大小,它是以文件结尾的文件.ns。每个集合和索引都被视为一个名称空间。
# 使用此设置控制新创建的名称空间文件的大小。该选项对现有文件没有影响。
# 命名空间文件的最大大小是2047兆字节。默认值16兆字节提供了大约24,000个名称空间。
quota:
enforced: false #启用或禁用强制每个数据库可能具有的数字数据文件的最大限制。
# 使用该storage.mmapv1.quota.enforced选项运行时,MongoDB每个数据库最多有8个数据文件。
# 通过调整storage.quota.maxFilesPerDB来调整这个限制。
maxFilesPerDB: 8 #每个数据库的数据文件数量限制,默认是8.该设置仅适用于设置仅适用于mongod.
smallFiles: false #如果你有大量的数据库,每个保存少量数据。MongoDB使用较小的默认文件大小。
# 该storage.mmapv1.smallFiles选项可减少数据文件的初始大小,并将最大大小限制为512兆字节。
# storage.mmapv1.smallFiles也可以将每个日志文件的大小从1千兆字节减少到128兆字节。
# journal:
# debugFlags: <int> #提供测试功能。不用于一般用途,并且会在系统异常关闭的情况下影响数据文件的完整性。
# commitIntervalMs: <num> #MongoDB 3.2弃用该 torage.mmapv1.journal.commitIntervalMs设置。
# 改为使用storage.journal.commitIntervalMs。
# wiredTiger:
# engineConfig:
# cacheSizeGB: <number> #WiredTiger将用于所有数据的内部缓存的最大大小,默认采用RAB-1GB的50%和256MB的最大值.
# 尽可能不要超过最大值.
# journalCompressor: <string> #用于压缩WiredTiger日志数据的压缩类型。none,snappy,zlib.version:3.0
# directoryForIndexes: true #mongod将索引存储在名为的子目录中 index,
# 并将集合数据存储在名为的子目录中 collection。
# collectionConfig:
# blockCompressor: <string> #用于压缩收集数据的默认压缩类型。none,snappy,zlib.version:3.0
indexConfig:
prefixCompression: true #启用或禁用索引数据的前缀压缩。
# inMemory: #仅在MongoDB Enterprise中可用。
# engineConfig:
# inMemorySizeGB: <number> #为内存存储引擎数据分配的最大内存量,
# 包括索引,oplog(如果 mongod是副本集,副本集或分片群集元数据的一部分)等。
# 默认情况下,内存存储引擎使用50%的物理RAM减1 GB。
#运行分析配置
operationProfiling:
mode: slowOp #指定应该分析哪些操作,分析操作可能会影响性能.
# - off=分析器已关闭,并且不收集任何数据。这是默认的分析器级别。
# - slowOp=分析器收集比花费时间更长的操作的数据slowms。
# - all=分析器收集所有操作的数据。
slowOpThresholdMs: 100 #慢操作时间阈值,默认100.
# slowOpSampleRate: <double> #慢操作采样率,0-1之间,包含0,1.
#
#复制设置
#
#replication:
# oplogSizeMB: <int> #复制操作日志的最大大小(MB)
# replSetName: <string> #mongod一部分的副本集的名称。副本集中的所有主机必须具有相同的集名称。仅适用于mongod.
# secondaryIndexPrefetch: <string> #仅适用于mmapv1 存储引擎.
# 在应用oplog中的操作之前,副本集的次要成员加载到内存中的索引。
# - none=辅助程序不会将索引加载到内存中。
# - all=辅助程序加载与操作相关的所有索引。
# - _id_only=Secondaries不会将额外的索引加载到已有_id索引之外的内存中。
# enableMajorityReadConcern: <boolean> ## Deprecated in 3.6
# 从MongoDB 3.6开始,"majority"始终启用读取关注,并且此设置不起作用。
# localPingThresholdMs: <int> #mongos用于确定哪些辅助副本集成员从客户端传递读取操作的ping时间(以毫秒为单位)。
# 默认值15对应于所有客户端驱动程序中的默认值。
#
# 分片设置
#
#sharding:
# clusterRole: <string> #mongod实例在分片群集中扮演的角色
# - configsvr=将此实例作为配置服务器启动。默认情况下,该实例在27019端口上启动。
# - shardsvr=启动此实例为碎片。默认情况下,该实例在27018端口上启动。
# 设置sharding.clusterRole要求mongod 实例与复制一起运行。
# 要将实例部署为副本集成员,请使用该replSetName 设置并指定副本集的名称。
# archiveMovedChunks: false #从3.2开始,MongoDB false用作默认值。在块迁移期间,分片不会保存从分片迁移的文档。
# configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017,... #该配置服务器用于 分片群集。
#
# 审计日志设置,仅在MongoDB Enterprise中可用。
#
#auditLog:
# destination: file #设置后,auditLog.destination启用使用指定格式往指定目标发送所有审核事件。
## - syslog=以JSON格式输出审计事件到系统日志.
## - console=以stdoutJSON格式输出审计事件。
## - file=将审核事件输出到以中指定auditLog.path格式auditLog.format指定的文件 。
# format: JSON #用于审计的输出文件的格式,当auditLog.destination=file时,可以指定该值(JSON/BSON).
# path: <string> #输出文件的绝对或相对路径,当auditLog.destination=file时,可以指定该值.
# filter: <string> #过滤指定类型的操作的记录。
#
# 简单网络管理协议配置
#
#snmp:
# subagent: <boolean> #该snmp.subagent设置仅适用于mongod。
# 如果snmp.subagent是true,SNMP运行的子代理。
# master: <boolean> #当snmp.master是true,SNMP运行作为一个主站。·
#
# 文本搜索选项 ,仅在MongoDB Enterprise中可用。
#
#basisTech:
# rootDirectory:<string> #指定Basis Technology Rosette语言学平台安装根目录的路径,以支持用于文本搜索操作的其他语言。