溫馨提示×

MongoDB Ubuntu配置文件解析

小樊
41
2025-09-27 17:24:35
欄目: 云計算

MongoDB Ubuntu配置文件解析
MongoDB在Ubuntu系統中的核心配置文件為/etc/mongod.conf,采用YAML格式編寫,用于定義數據庫服務器的行為(如數據存儲、網絡連接、安全策略等)。修改該文件后,需重啟MongoDB服務(sudo systemctl restart mongod)使配置生效。

一、配置文件核心結構與參數說明

1. storage(存儲配置)

存儲模塊定義了數據文件的存儲路徑及日志功能,是MongoDB運行的基礎:

  • dbPath:指定數據文件(如集合、索引)的存儲目錄,默認為/var/lib/mongodb。需確保該目錄存在且具備正確的權限(建議歸屬mongodb:mongodb用戶組)。
  • journal.enabled:是否啟用預寫式日志(WiredTiger引擎默認開啟)。開啟后可保證數據持久性,即使服務器異常崩潰,也能通過日志恢復未完成的事務。

2. systemLog(日志配置)

日志模塊控制日志的輸出目標、格式及保留策略:

  • destination:日志輸出目的地,可選file(文件)或syslog(系統日志),默認為file。
  • path:當日志輸出到文件時,指定日志文件的路徑,默認為/var/log/mongodb/mongod.log。
  • logAppend:是否在現有日志文件中追加內容(而非覆蓋),建議設置為true,避免日志丟失。
  • verbosity:日志級別(0-5),默認為0(僅記錄錯誤和警告)。數值越大,日志越詳細(如1記錄信息級日志,2記錄調試日志)。

3. net(網絡配置)

網絡模塊定義了MongoDB的監聽端口及IP綁定規則:

  • port:MongoDB服務器監聽的端口號,默認為27017??筛鶕枨笮薷模ㄈ绫苊舛丝跊_突),但需確保防火墻允許該端口的流量。
  • bindIp:指定MongoDB綁定的IP地址,可設置為單個IP(如127.0.0.1,僅本地連接)、多個IP(如127.0.0.1,192.168.1.100)或0.0.0.0(允許所有IP連接)。生產環境中,建議限制為特定IP以提升安全性。
  • maxIncomingConnections:允許的最大并發連接數,默認為65536??筛鶕掌髻Y源(如內存、CPU)調整,避免連接數過多導致性能下降。

4. security(安全配置)

安全模塊用于保障數據庫的訪問安全,主要包括認證與加密:

  • authorization:是否啟用用戶訪問控制(Access Control)。設置為enabled時,客戶端需通過用戶名和密碼認證才能訪問數據庫(如admin數據庫的管理員賬戶);默認為disabled(不安全,不建議在生產環境中使用)。
  • keyFile:集群節點間通信的身份驗證密鑰文件路徑(用于復制集或分片集群)。密鑰文件需在所有節點上保持一致,且權限設置為400(僅所有者可讀)。
  • clusterAuthMode:集群成員間的認證模式,可選keyFile(密鑰文件,推薦)或x509(X.509證書,適用于高安全需求場景)。默認為keyFile。
  • javascriptEnabled:是否允許在服務器端執行JavaScript腳本(如mapReduce、group命令)。若應用無需這些功能,建議設置為false,減少安全風險。

5. replication(復制集配置,可選)

復制集模塊用于配置MongoDB的高可用性(主從復制):

  • replSetName:復制集的名稱(如myReplSet)。同一復制集中的所有節點需使用相同的名稱,用于標識集群身份。

6. processManagement(進程管理配置,可選)

進程管理模塊控制MongoDB的啟動方式及PID文件位置:

  • fork:是否以守護進程(后臺進程)方式運行MongoDB。設置為true時,MongoDB會在后臺啟動(適用于生產環境);默認為false(前臺運行,僅用于測試)。
  • pidFilePath:PID文件的路徑(存儲MongoDB主進程的ID),默認為/var/run/mongodb/mongod.pid。需確保該目錄存在且具備寫入權限。

二、常見配置修改示例

1. 修改數據存儲路徑

若需將數據存儲到/data/db目錄,需執行以下步驟:

# 創建目錄并設置權限
sudo mkdir -p /data/db
sudo chown -R mongodb:mongodb /data/db

# 修改配置文件
sudo nano /etc/mongod.conf
# 找到storage部分,修改dbPath
storage:
  dbPath: /data/db

# 重啟服務
sudo systemctl restart mongod

2. 啟用身份驗證

啟用身份驗證需兩步:

  • 修改配置文件:
sudo nano /etc/mongod.conf
# 找到security部分,添加或修改
security:
  authorization: enabled
  • 重啟服務后,創建管理員用戶(需進入MongoDB shell操作):
mongo
use admin
db.createUser({
  user: "admin",
  pwd: "yourStrongPassword",
  roles: [{ role: "root", db: "admin" }]
})
exit

3. 允許遠程連接

若需允許遠程IP訪問MongoDB,需修改net.bindIp

sudo nano /etc/mongod.conf
# 找到net部分,修改bindIp(如允許所有IP或指定IP)
net:
  bindIp: 0.0.0.0  # 或 192.168.1.100,10.0.0.1
  port: 27017

# 重啟服務
sudo systemctl restart mongod

注意:允許所有IP連接(0.0.0.0)會帶來安全風險,建議結合防火墻(如ufw)限制訪問來源IP。

三、注意事項

  • 配置文件格式:YAML文件對縮進敏感,需使用空格(而非Tab鍵)縮進,否則會導致解析錯誤。
  • 權限問題:修改配置文件或數據目錄后,需確保mongodb用戶對相關路徑具有讀取/寫入權限(如sudo chown -R mongodb:mongodb /var/lib/mongodb)。
  • 版本兼容性:不同版本的MongoDB可能調整了配置參數(如setParameter中的選項),建議參考對應版本的官方文檔(如MongoDB 6.0配置文檔)。
  • 生產環境建議:啟用身份驗證、限制bindIp、定期備份數據、監控日志(如通過mongostatmongotop工具),以提升數據庫的安全性與穩定性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女