mongodb 3.0及以上版本基本都是使用 yaml 語法格式的配置文件, 啟動 mongo 實例如果不是指定配置文件或參數命令啟動, 會按照默認的參數啟動。
常用基本配置文件參數
storage: # mongod 進程存儲數據目錄,此配置僅對 mongod 進程有效 dbPath: /data/mongodb/db 是否開啟 journal 日志持久存儲,journal 日志用來數據恢復,是 mongod 最基礎的特性,通常用於故障恢復。64 位系統默認為 true,32 位默認為 false,建議開啟,僅對 mongod 進程有效。 journal: enabled: true # 存儲引擎類型,mongodb 3.0 之后支持 “mmapv1”、“wiredTiger” 兩種引擎,默認值為“mmapv1”;官方宣稱 wiredTiger 引擎更加優秀。 engine: mmapv1 systemLog: # 日志輸出目的地,可以指定為 “file” 或者“syslog”,表述輸出到日志文件,如果不指定,則會輸出到標准輸出中(standard output) destination: file # 如果為 true,當 mongod/mongos 重啟后,將在現有日志的尾部繼續添加日志。否則,將會備份當前日志文件,然后創建一個新的日志文件;默認為 false。 logAppend: true # 日志路徑 path: /var/log/mongodb/mongod.log net: # 指定端口 port: 27017 # 綁定外網 op 多個用逗號分隔 bindIp: 0.0.0.0 maxIncomingConnections: 10000
內存優化相關的配置
MongoDB 在使用過程中, 內存占用會越來越大, 甚至達到危險的狀態, 而且會一直保持最高狀態,
官網上有相關的內容:https://docs.mongodb.com/v3.4/core/wiredtiger/index.html
以下根據官網, 增加限制內存的配置, 啟動mongo使用配置文件啟動
storage: dbPath: /data/mongodb/db journal: enabled: true engine: wiredTiger # 如下配置僅對 wiredTiger 引擎生效(3.0 以上版本) wiredTiger: # wiredTiger 緩存工作集(working set)數據的內存大小,單位:GB # 此值決定了 wiredTiger 與 mmapv1 的內存模型不同,它可以限制 mongod 對內存的使用量,而 mmapv1 則不能(依賴於系統級的 mmap)。默認情況下,cacheSizeGB 的值為假定當前節點只部署一個 mongod 實例,此值的大小為物理內存的一半;如果當前節點部署了多個 mongod 進程,那么需要合理配置此值。如果 mongod 部署在虛擬容器中(比如,lxc,cgroups,Docker)等,它將不能使用整個系統的物理內存,則需要適當調整此值。默認值為物理內存的一半。 engineConfig: cacheSizeGB: 5 systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log net: port: 27017 bindIp: 0.0.0.0 maxIncomingConnections: 10000
注意:cacheSizeGB只限制存儲引擎使用的內存 但是儲存引擎使用的內存 < mongodb使用的總內存
添加用戶認證
開啟用戶認證前需要創建一個root用戶 如:
use admin db.createUser({ user:"root", pwd:"root123", roles:[ { role:"userAdminAnyDatabase", db:"admin" } ] })
然后在配置文件中添加如下配置信息
security:
authorization: enabled
然后重啟mongo, 不然用戶認證不生效, 重啟后就可以創建其他普通用戶了
參考:https://blog.csdn.net/weixin_43886133/article/details/90607193