ubuntu

Ubuntu MongoDB配置有哪些技巧

小樊
44
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
看了该问题的人还看了