mongodb配置文件詳解,內存限制,用戶驗證 yaml格式

  • 2019 年 10 月 5 日
  • 筆記

mongodb配置文件詳解,內存限制,用戶驗證 yaml格式

2019年05月27日 17:18:30 西門小鳳 閱讀數 275更多

分類專欄: MongoDB

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_43886133/article/details/90607193

mongodb 單節點配置文件詳解

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

內存優化相關的配置

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

添加用戶認證

開啟用戶認證前需要創建一個root用戶 如:

use admin  db.createUser({  user:"root",  pwd:"root123",  roles:[  {  role:"userAdminAnyDatabase",  db:"admin"  }  ]  })
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

然後在配置文件中添加如下配置信息

security:    authorization: enabled
  • 1
  • 2

然後重啟mongo, 不然用戶認證不生效, 重啟後就可以創建其他普通用戶了

(adsbygoogle = window.adsbygoogle || []).push({});