MongoDB官方下载地址:https://www.mongodb.com/download-center mongodb
首先须要根据Windows版本选择正确的MongoDB版本进行安装,能够在命令行中输入如下指令检查Windows版本: 数据库
wmic os get osarchitecture express
32 位版本的 MongoDB 只支持 2G 如下的数据库,只适用于测试及评估。 json
点击下载下来的安装文件进行MongoDB数据库安装,如:mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi windows
安装完成后在经过命令行跳转至MongoDB安装目录,输入如下指令检查是否安装成功 安全
mongod -v 服务器
MongoDB须要建立一个目录来保存全部的数据文件,默认状况下MongoDB的数据目录是C:\data\db\(见上方截图),因此须要在C盘下建立对应的文件夹,也能够经过命令行设置 并发
MongoDB的数据目录 app
mongod --dbpath "d:\mongodb\data"
控制台输出会显示 waiting for connections 消息,这表示 mongod 进程已经成功运行。 dom
启动MongoDB有2种方式,一是直接指定配置参数,二是指定配置文件
例如:
mongod --dbpath "d:\mongodb\data"
因为官方下载的安装包中没有默认的配置文件,若想使用配置文件只能本身建立,建立配置文件时确保使用ASCII编码格式,Mongod 实例不支持配置文件使用非 ASCII 编码格式,包括UTF-8。自2.6版本之后MongoDB使用YAML文件格式,注意:YAML 不支持制表符缩进︰ 用空格代替。
例如:
mongod --config d:\mongodb\mongodb.conf
配置参数详解:
mongodb 3.0以后配置文件采用YAML格式,这种格式很是简单,使用<key>:<value>表示,开头使用"空格"做为缩进。须要注意的是,":"以后有value的话,须要紧跟一个空格,若是key只是表示层级,则无需在":"后增长空格(好比:systemLog:后面既不须要空格)。按照层级,每行4个空格缩进,第二级则8个空格,依次轮推,顶层则不须要空格缩进
systemLog.verbosity
integer
日志文件输出的级别,越大级别越低。
systemLog.quite
boolean
在quite模式下会限制输出信息:
数据库命令输出,副本集活动,链接接受事件,链接关闭事件。
systemLog.traceAllExceptions
string
打印verbose信息来调试,用来记录证额外的异常日志。
systemLog.syslogFacility
string,默认为user
指定syslog日志信息的设备级别。须要指定--syslog来使用这个选项。
systemLog.path string
发送全部的诊断信息日志,默认重启后会覆盖。
systemLog.logAppend
boolean
是否启用追加日志。
systemLog.logRotate
string
V3.0.0版本中新特性,默认值为rename
使用rename,mongod或mongos经过在文件名称末尾添加UTC(GMT)时间戳的方式重命名当前的日志文件,而后打开新的日志文件,关闭以前旧的日志文件,并发送全部新的日志信息到新的日志文件中。
reopen 关闭并从新打开日志文件遵循典型的Linux/Unix日志切换行为。当使用Linux/Unix logrotate工具时,使用reopen避免日志丢失。
若是指定reopen时,也必须同时使用—logappend
systemLog.destination
string
指定一个文件或syslog。若是指定为文件,必须同时指定systemLog.path
systemLog.timeStampFormat
string,默认为iso8601-local
日志信息中的时间戳格式:
ctime,iso8601-utc,iso8601-local
processManagement.pidFilePath
string
指定进程的ID,与--fork配合使用,不指定则不会建立。
processManagement.fork
boolean,默认为false
是守护进程在后台运行。
net.port
interger,默认为27017
mongodb实例监听的端口号。
net.bindIp
string,2.6版本默认为127.0.0.1
指定mongodb实例绑定的ip,为了绑定多个ip,可使用逗号分隔。
net.maxIncomingConnections
integer 默认为1000000
mongodb实例接受的最多链接数,若是高于操做系统接受的最大线程数,设置无效。
net.wireObjectCheck
boolean,默认为true
检查文档的有效性。会稍微影响性能。
net.http.enabled
boolean,默认为false
打开http端口,会致使更多的不安全因素。
net.unixDomainSocket.enabled
boolean,默认为false
中止UNIX domain socket监听。
mongodb实例会一直监听UNIX
socket,除非net.unixDomainSocket.enabled设置为true,bindIp没有设置,bindIp没有默认指定为127.0.0.1。
net.unixDomainSocket.pathPrefix
string,默认为/tmp
unix Socket所在的路径。
net.ipv6
boolean,默认为false
打开IPV6功能,默认为关闭的。
net.http.JSONPEnabled
boolean,默认为false
运行json访问http端口,打开会致使更多的不安全因素。
net.http.RESTInterfaceEnabled
boolean,默认为false
即便http接口选项关闭,打开也会暴露http接口,会致使更多的不安全因素。
security.keyFile
string
指定分片集或副本集成员之间身份验证的key文件存储位置。
security.clusterAuthMode
string
集群认证中利用到这个模式,若是使用x.509安全机制,能够在这里指定。
keyFile,sendKeyFile,sendX509,x509
默认的mongodb发行版是不支持ssl的,可使用专业版的或从新自行编译mongodb。
security.authorization
string,默认为disabled
打开访问数据库和进行操做的用户角色认证。
enabled,disabled
operationProfiling.slowOpThresholdMs
integer,默认100
指定慢查询时间,单位毫秒,若是打开功能,则向system.profile集合写入数据。
operationProfiling.mode
integer,默认0
改变分析日志输出级别。
0,1,2,分别对应关闭,仅打开慢查询,记录全部操做。
storage.dbPath
string
指定数据文件的路径。
storage.directoryPerDB
boolean,默认关闭
指定存储每一个数据库文件到单独的数据目录。若是在一个已存在的系统使用该选项,须要事先把存在的数据文件移动到目录。
storage.indexBuildRetry
boolean,默认为true
指定数据库在索引创建过程当中中止,重启后是否从新创建索引。
storage.preallocDataFiles
boolean,默认true
是否预先分片好数据文件。
storage.nsSize
integer,默认16
指定命名空间的大小,即.ns后缀的文件。最大为2047MB,16M文件能够提供大约24000个命名空间。
storage.quota.enforced
boolean,默认false
限制每一个数据库的数据文件数目。能够经过maxFilesPerDB调整数目。
storage.quota.maxFilesPerDB
integer,默认为8
限制每一个数据库的数据文件数目。
storage.smallFiles
boolean,默认为false
限制mongodb数据文件大小为512MB,减少journal文件从1G到128M,适用于有不少数量小的数据文件。
storage.syncPeriodSecs
number,默认60
mongodb文件刷新频率,尽可能不要在生产环境下修改。
storage.repairPath
string,默认为指定dbpath下的_tmp目录。
指定包含数据文件的根目录,进行--repair操做。
storage.journal.enabled
boolean,默认64bit为true,32bit为false
记录操做日志,防止数据丢失。
storage.journal.debugFlags
integer
提供数据库在非正常关闭下的功能测试。
storage.journal.commitIntervalMs
number,默认为100或30
journal操做的最大间隔时间。能够是2-300ms之间的值,低的值有助于持久化,可是会增长磁盘的额外负担。
若是journal和数据文件在同一磁盘上,默认为100ms。若是在不一样的磁盘上为30ms。
若是强制mongod提交日志文件,能够指定j:true,指定后,时间变为原来的三分之一。
replication.oplogSizeMB
integer,默认为磁盘的5%
指定oplog的最大尺寸。对于已经创建过oplog.rs的数据库,指定无效。
replication.replSetName
string
指定副本集的名称。
replication.secondaryIndexPrefetch
string,默认为all
指定副本集成员在接受oplog以前是否加载索引到内存。默认会加载全部的索引到内存。
none,不加载;all,加载全部;_id_only,仅加载_id。
sharding.clusterRole
string
指定分片集的mongodb角色。
configsvr,配置服务器,端口27019;shardsvr,分片实例,端口27018。
sharding.archiveMovedChunks
integer
在块移动过程当中,该选项强制mongodb实例保存全部移动的文档到moveChunk目录。
auditLog.destination
string
syslog,以json格式保存身份验证到syslog,windows下不可用,serverity级别为info,facility级别为user。
console,以json格式输出信息到标准输出。
file,以json格式输出信息到文件。
auditLog.format
string
指定输出文件的格式
JSON,输出json格式文件;BSON,输出bson二进制格式文件。
auditLog.path
string
若是--auditDestination的值为file,则该选项指定文件路径。
auditLog.filter
document
指定过滤系统身份验证的格式为:
{ atype : <expression> }
{ atype: <expression>, "param.db": <database> }
10. snmp
snmp.subagent
boolean
运行SNMP为一个子代理。
snmp.master
boolean
运行SNMP为一个主进程。
仅mongos选项
replication.localPingThresholdMs
integer,默认15
当客户端选定副本集进行读操做时受影响。
sharding.autoSplit
boolean
防止mongos自动在一个分片集合中插入元数据。
由于任何的mongos均可以建立一个分离,若是打开该选项,将会致使分片不平衡,须要谨慎使用。
sharding.configDB
string
指定配置数据库。可使用逗号分隔一到三个服务器。
若是处于不一样的位置,须要指定最近的一个。
不能移除配置服务器,即便不可用或者离线了。
sharding.chunkSize
integer,默认为64
每一个块的大小。64MB是理想大小,小的会致使不能在不一样节点间高效移动。
仅仅在初始化时有效。
参考示例:
systemLog: quiet: true #syslogFacility: <string> path: D:\mongodb\logs\mongodb.log logAppend: true destination: file timeStampFormat: "iso8601-utc" storage: dbPath: D:\mongodb\data indexBuildRetry: true #repairPath: <string> journal: enabled: true directoryPerDB: true #syncPeriodSecs: 60 engine: wiredTiger wiredTiger: engineConfig: cacheSizeGB: 10 directoryForIndexes: true collectionConfig: blockCompressor: zlib indexConfig: prefixCompression: true #processManagement: #fork: true #pidFilePath: D:\mongodb\run\mongodb.pid net: port: 27017 #bindIp: 127.0.0.1 maxIncomingConnections: 65536 wireObjectCheck: true ipv6: false http: enabled: false JSONPEnabled: false RESTInterfaceEnabled: false #ssl: #mode: <string> #PEMKeyFile: <string> #PEMKeyPassword: <string> #security: #keyFile: D:\mongodb\keyfile #clusterAuthMode: keyFile #authorization: disabled operationProfiling: slowOpThresholdMs: 100 mode: slowOp replication: oplogSizeMB: 50 replSetName: reptestname secondaryIndexPrefetch: all #enableMajorityReadConcern: <boolean> #sharding: #clusterRole: <string> #archiveMovedChunks: <boolean> |