溫馨提示×

Ubuntu MongoDB配置有哪些技巧

小樊
63
2025-05-12 04:19:19
欄目: 云計算

在Ubuntu上配置MongoDB時,有一些技巧可以幫助你確保其高效和安全地運行。以下是一些關鍵步驟和配置技巧:

  1. 安裝和配置MongoDB

    • 導入MongoDB公鑰:
      wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
      
    • 創建并配置MongoDB列表文件:
      echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
      
    • 更新軟件包列表并安裝MongoDB:
      sudo apt-get update
      sudo apt-get install -y mongodb-org
      
    • 啟動并驗證MongoDB服務:
      sudo systemctl start mongod
      sudo systemctl status mongod
      
  2. 配置文件調整

    • 編輯MongoDB配置文件 /etc/mongod.conf
      sudo nano /etc/mongod.conf
      
    • 允許從任意IP地址連接:
      net:
        port: 27017
        bindIp: 0.0.0.0
      
    • 啟用身份驗證:
      security:
        authorization: enabled
      
    • 保存并重啟MongoDB服務:
      sudo systemctl restart mongod
      
  3. 性能優化

    • 調整內存和磁盤配置,確保服務器有足夠的內存和快速的磁盤。
    • 編輯 /etc/mongod.conf 文件,調整以下參數:
      net:
        maxIncomingConnections: 2000
      storage:
        wiredTiger:
          engineConfig:
            cacheSizeGB: 4
      
    • 為經常用于查詢的字段創建索引,以提高查詢性能。
    • 使用MongoDB自帶的工具 mongostatmongotop 監控數據庫性能。
  4. 安全配置

    • 禁用透明大頁面(THP):
      sudo nano /etc/systemd/system/disable-thp.service
      
      內容:
      [Unit]
      Description=Disable Transparent Huge Pages (THP)
      
      [Service]
      Type=simple
      ExecStart=/bin/sh -c "echo 'never' /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' /sys/kernel/mm/transparent_hugepage/defrag"
      
      [Install]
      WantedBy=multi-user.target
      
      重新加載并啟用服務:
      sudo systemctl daemon-reload
      sudo systemctl enable --now disable-thp.service
      
    • 設置MongoDB用戶的資源限制:
      sudo nano /etc/security/limits.d/mongodb.conf
      
      內容:
      mongod soft nproc 64000
      mongod hard nproc 64000
      mongod soft nofile 64000
      mongod hard nofile 64000
      
    • 啟用MongoDB認證并創建管理員用戶:
      mongosh
      use admin
      db.createUser({
        user: "admin",
        pwd: "yourAdminPassword",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      })
      

通過這些步驟和技巧,你可以在Ubuntu上高效、安全地配置和管理MongoDB。

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