MongoDB学习笔记——数据库安装及配置
MongoDB數(shù)據(jù)庫(kù)安裝
MongoDB官方下載地址:https://www.mongodb.com/download-center
首先需要根據(jù)Windows版本選擇正確的MongoDB版本進(jìn)行安裝,可以在命令行中輸入以下指令檢查Windows版本:
wmic os get osarchitecture
32 位版本的 MongoDB 只支持 2G 以下的數(shù)據(jù)庫(kù),只適用于測(cè)試及評(píng)估。
點(diǎn)擊下載下來(lái)的安裝文件進(jìn)行MongoDB數(shù)據(jù)庫(kù)安裝,如:mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi
安裝完成后在通過(guò)命令行跳轉(zhuǎn)至MongoDB安裝目錄,輸入以下指令檢查是否安裝成功
mongod -v
MongoDB需要?jiǎng)?chuàng)建一個(gè)目錄來(lái)保存所有的數(shù)據(jù)文件,默認(rèn)情況下MongoDB的數(shù)據(jù)目錄是C:\data\db\(見(jiàn)上方截圖),所以需要在C盤下創(chuàng)建對(duì)應(yīng)的文件夾,也可以通過(guò)命令行設(shè)置
MongoDB的數(shù)據(jù)目錄
mongod --dbpath "d:\mongodb\data"控制臺(tái)輸出會(huì)顯示?waiting for connections?消息,這表示 mongod 進(jìn)程已經(jīng)成功運(yùn)行。
啟動(dòng)MongoDB有2種方式,一是直接指定配置參數(shù),二是指定配置文件
例如:
mongod --dbpath "d:\mongodb\data"由于官方下載的安裝包中沒(méi)有默認(rèn)的配置文件,若想使用配置文件只能自己創(chuàng)建,創(chuàng)建配置文件時(shí)確保使用ASCII編碼格式,Mongod?實(shí)例不支持配置文件使用非 ASCII?編碼格式,包括UTF-8。自2.6版本以后MongoDB使用YAML文件格式,注意:YAML?不支持制表符縮進(jìn)︰?用空格代替。
例如:
mongod --config d:\mongodb\mongodb.conf?
配置參數(shù)詳解:
?mongodb 3.0之后配置文件采用YAML格式,這種格式非常簡(jiǎn)單,使用<key>:<value>表示,開(kāi)頭使用"空格"作為縮進(jìn)。需要注意的是,":"之后有value的話,需要緊跟一個(gè)空格,如果key只是表示層級(jí),則無(wú)需在":"后增加空格(比如:systemLog:后面既不需要空格)。按照層級(jí),每行4個(gè)空格縮進(jìn),第二級(jí)則8個(gè)空格,依次輪推,頂層則不需要空格縮進(jìn)
1. systemLog
systemLog.verbosity
integer
日志文件輸出的級(jí)別,越大級(jí)別越低。
systemLog.quite
boolean
在quite模式下會(huì)限制輸出信息:
數(shù)據(jù)庫(kù)命令輸出,副本集活動(dòng),連接接受事件,連接關(guān)閉事件。
systemLog.traceAllExceptions
string
打印verbose信息來(lái)調(diào)試,用來(lái)記錄證額外的異常日志。
systemLog.syslogFacility
string,默認(rèn)為user
指定syslog日志信息的設(shè)備級(jí)別。需要指定--syslog來(lái)使用這個(gè)選項(xiàng)。
systemLog.path string
發(fā)送所有的診斷信息日志,默認(rèn)重啟后會(huì)覆蓋。
systemLog.logAppend
boolean
是否啟用追加日志。
systemLog.logRotate
string
V3.0.0版本中新特性,默認(rèn)值為rename
使用rename,mongod或mongos通過(guò)在文件名稱末尾添加UTC(GMT)時(shí)間戳的方式重命名當(dāng)前的日志文件,然后打開(kāi)新的日志文件,關(guān)閉之前舊的日志文件,并發(fā)送所有新的日志信息到新的日志文件中。
reopen 關(guān)閉并重新打開(kāi)日志文件遵循典型的Linux/Unix日志切換行為。當(dāng)使用Linux/Unix logrotate工具時(shí),使用reopen避免日志丟失。
如果指定reopen時(shí),也必須同時(shí)使用—logappend
?
systemLog.destination
string
指定一個(gè)文件或syslog。如果指定為文件,必須同時(shí)指定systemLog.path
systemLog.timeStampFormat
string,默認(rèn)為iso8601-local
日志信息中的時(shí)間戳格式:
ctime,iso8601-utc,iso8601-local
?
2. processManagement
processManagement.pidFilePath
string
指定進(jìn)程的ID,與--fork配合使用,不指定則不會(huì)創(chuàng)建。
processManagement.fork
boolean,默認(rèn)為false
是守護(hù)進(jìn)程在后臺(tái)運(yùn)行。
?
3. net
net.port
interger,默認(rèn)為27017
mongodb實(shí)例監(jiān)聽(tīng)的端口號(hào)。
net.bindIp
string,2.6版本默認(rèn)為127.0.0.1
指定mongodb實(shí)例綁定的ip,為了綁定多個(gè)ip,可以使用逗號(hào)分隔。
net.maxIncomingConnections
integer 默認(rèn)為1000000
mongodb實(shí)例接受的最多連接數(shù),如果高于操作系統(tǒng)接受的最大線程數(shù),設(shè)置無(wú)效。
net.wireObjectCheck
boolean,默認(rèn)為true
檢查文檔的有效性。會(huì)稍微影響性能。
net.http.enabled
boolean,默認(rèn)為false
打開(kāi)http端口,會(huì)導(dǎo)致更多的不安全因素。
net.unixDomainSocket.enabled
boolean,默認(rèn)為false
停止UNIX domain socket監(jiān)聽(tīng)。
mongodb實(shí)例會(huì)一直監(jiān)聽(tīng)UNIX
socket,除非net.unixDomainSocket.enabled設(shè)置為true,bindIp沒(méi)有設(shè)置,bindIp沒(méi)有默認(rèn)指定為127.0.0.1。
net.unixDomainSocket.pathPrefix
string,默認(rèn)為/tmp
unix Socket所在的路徑。
net.ipv6
boolean,默認(rèn)為false
打開(kāi)IPV6功能,默認(rèn)為關(guān)閉的。
net.http.JSONPEnabled
boolean,默認(rèn)為false
運(yùn)行json訪問(wèn)http端口,打開(kāi)會(huì)導(dǎo)致更多的不安全因素。
net.http.RESTInterfaceEnabled
boolean,默認(rèn)為false
即使http接口選項(xiàng)關(guān)閉,打開(kāi)也會(huì)暴露http接口,會(huì)導(dǎo)致更多的不安全因素。
?
4. security
security.keyFile
string
指定分片集或副本集成員之間身份驗(yàn)證的key文件存儲(chǔ)位置。
security.clusterAuthMode
string
集群認(rèn)證中利用到這個(gè)模式,如果使用x.509安全機(jī)制,可以在這里指定。
keyFile,sendKeyFile,sendX509,x509
默認(rèn)的mongodb發(fā)行版是不支持ssl的,可以使用專業(yè)版的或重新自行編譯mongodb。
security.authorization
string,默認(rèn)為disabled
打開(kāi)訪問(wèn)數(shù)據(jù)庫(kù)和進(jìn)行操作的用戶角色認(rèn)證。
enabled,disabled
?
5. operationProfiling
operationProfiling.slowOpThresholdMs
integer,默認(rèn)100
指定慢查詢時(shí)間,單位毫秒,如果打開(kāi)功能,則向system.profile集合寫入數(shù)據(jù)。
operationProfiling.mode
integer,默認(rèn)0
改變分析日志輸出級(jí)別。
0,1,2,分別對(duì)應(yīng)關(guān)閉,僅打開(kāi)慢查詢,記錄所有操作。
?
6. storage
storage.dbPath
string
指定數(shù)據(jù)文件的路徑。
storage.directoryPerDB
boolean,默認(rèn)關(guān)閉
指定存儲(chǔ)每個(gè)數(shù)據(jù)庫(kù)文件到單獨(dú)的數(shù)據(jù)目錄。如果在一個(gè)已存在的系統(tǒng)使用該選項(xiàng),需要事先把存在的數(shù)據(jù)文件移動(dòng)到目錄。
storage.indexBuildRetry
boolean,默認(rèn)為true
指定數(shù)據(jù)庫(kù)在索引建立過(guò)程中停止,重啟后是否重新建立索引。
storage.preallocDataFiles
boolean,默認(rèn)true
是否預(yù)先分片好數(shù)據(jù)文件。
storage.nsSize
integer,默認(rèn)16
指定命名空間的大小,即.ns后綴的文件。最大為2047MB,16M文件可以提供大約24000個(gè)命名空間。
storage.quota.enforced
boolean,默認(rèn)false
限制每個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件數(shù)目。可以通過(guò)maxFilesPerDB調(diào)整數(shù)目。
storage.quota.maxFilesPerDB
integer,默認(rèn)為8
限制每個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件數(shù)目。
storage.smallFiles
boolean,默認(rèn)為false
限制mongodb數(shù)據(jù)文件大小為512MB,減小journal文件從1G到128M,適用于有很多數(shù)量小的數(shù)據(jù)文件。
storage.syncPeriodSecs
number,默認(rèn)60
mongodb文件刷新頻率,盡量不要在生產(chǎn)環(huán)境下修改。
storage.repairPath
string,默認(rèn)為指定dbpath下的_tmp目錄。
指定包含數(shù)據(jù)文件的根目錄,進(jìn)行--repair操作。
storage.journal.enabled
boolean,默認(rèn)64bit為true,32bit為false
記錄操作日志,防止數(shù)據(jù)丟失。
storage.journal.debugFlags
integer
提供數(shù)據(jù)庫(kù)在非正常關(guān)閉下的功能測(cè)試。
storage.journal.commitIntervalMs
number,默認(rèn)為100或30
journal操作的最大間隔時(shí)間。可以是2-300ms之間的值,低的值有助于持久化,但是會(huì)增加磁盤的額外負(fù)擔(dān)。
如果journal和數(shù)據(jù)文件在同一磁盤上,默認(rèn)為100ms。如果在不同的磁盤上為30ms。
如果強(qiáng)制mongod提交日志文件,可以指定j:true,指定后,時(shí)間變?yōu)樵瓉?lái)的三分之一。
?
7. replication
replication.oplogSizeMB
integer,默認(rèn)為磁盤的5%
指定oplog的最大尺寸。對(duì)于已經(jīng)建立過(guò)oplog.rs的數(shù)據(jù)庫(kù),指定無(wú)效。
replication.replSetName
string
指定副本集的名稱。
replication.secondaryIndexPrefetch
string,默認(rèn)為all
指定副本集成員在接受oplog之前是否加載索引到內(nèi)存。默認(rèn)會(huì)加載所有的索引到內(nèi)存。
none,不加載;all,加載所有;_id_only,僅加載_id。
?
8. sharding
sharding.clusterRole
string
指定分片集的mongodb角色。
configsvr,配置服務(wù)器,端口27019;shardsvr,分片實(shí)例,端口27018。
sharding.archiveMovedChunks
integer
在塊移動(dòng)過(guò)程中,該選項(xiàng)強(qiáng)制mongodb實(shí)例保存所有移動(dòng)的文檔到moveChunk目錄。
?
9. auditLog
auditLog.destination
string
syslog,以json格式保存身份驗(yàn)證到syslog,windows下不可用,serverity級(jí)別為info,facility級(jí)別為user。
console,以json格式輸出信息到標(biāo)準(zhǔn)輸出。
file,以json格式輸出信息到文件。
auditLog.format
string
指定輸出文件的格式
JSON,輸出json格式文件;BSON,輸出bson二進(jìn)制格式文件。
auditLog.path
string
如果--auditDestination的值為file,則該選項(xiàng)指定文件路徑。
auditLog.filter
document
指定過(guò)濾系統(tǒng)身份驗(yàn)證的格式為:
{ atype : <expression> }
{ atype: <expression>, "param.db": <database> }
?
10. snmp
snmp.subagent
boolean
運(yùn)行SNMP為一個(gè)子代理。
snmp.master
boolean
運(yùn)行SNMP為一個(gè)主進(jìn)程。
?
僅mongos選項(xiàng)
replication.localPingThresholdMs
integer,默認(rèn)15
當(dāng)客戶端選定副本集進(jìn)行讀操作時(shí)受影響。
sharding.autoSplit
boolean
防止mongos自動(dòng)在一個(gè)分片集合中插入元數(shù)據(jù)。
因?yàn)槿魏蔚膍ongos都可以創(chuàng)建一個(gè)分離,如果打開(kāi)該選項(xiàng),將會(huì)導(dǎo)致分片不平衡,需要謹(jǐn)慎使用。
sharding.configDB
string
指定配置數(shù)據(jù)庫(kù)。可以使用逗號(hào)分隔一到三個(gè)服務(wù)器。
如果處于不同的位置,需要指定最近的一個(gè)。
不能移除配置服務(wù)器,即使不可用或者離線了。
sharding.chunkSize
integer,默認(rèn)為64
每個(gè)塊的大小。64MB是理想大小,小的會(huì)導(dǎo)致不能在不同節(jié)點(diǎn)間高效移動(dòng)。
僅僅在初始化時(shí)有效。
?
參考示例:
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> |
轉(zhuǎn)載于:https://www.cnblogs.com/AlvinLee/p/6055255.html
總結(jié)
以上是生活随笔為你收集整理的MongoDB学习笔记——数据库安装及配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Zookeeper C 回调函数
- 下一篇: 排球比赛计分规则功能说明书