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