温馨提示×

MongoDB Linux配置有哪些关键步骤

小樊
51
2025-10-24 23:35:19
栏目: 云计算

1. 安装MongoDB
根据Linux发行版选择包管理器安装(如Ubuntu/Debian用apt,CentOS/RHEL用yum),或手动下载TGZ包编译安装。推荐使用官方仓库确保版本安全:

  • 包管理器安装(以Ubuntu为例):
    sudo apt update
    sudo apt install -y mongodb-org  # 安装社区版
    
  • 手动安装
    下载TGZ包(如mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz),解压后移动至/usr/local/mongodb,并添加环境变量(export PATH=/usr/local/mongodb/bin:$PATH)。

2. 创建数据与日志目录
MongoDB需专用目录存储数据与日志,通常设置在/var/lib/mongodb(数据)和/var/log/mongodb(日志),并赋予mongodb用户所有权:

sudo mkdir -p /var/lib/mongodb /var/log/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb  # 确保进程有读写权限

3. 配置MongoDB参数
编辑核心配置文件/etc/mongod.conf(若不存在则创建),设置关键参数:

  • 基础配置
    storage:
      dbPath: /var/lib/mongodb  # 数据存储路径
      journal:
        enabled: true           # 启用预写日志(WAL),确保数据持久性
    systemLog:
      destination: file         # 日志输出到文件
      path: /var/log/mongodb/mongod.log  # 日志文件路径
      logAppend: true           # 追加模式,避免日志覆盖
    net:
      port: 27017               # 监听端口(默认27017)
      bindIp: 0.0.0.0           # 绑定IP(0.0.0.0允许远程访问,生产环境建议限制为特定IP)
    
  • 安全配置
    启用认证以保护数据库访问:
    security:
      authorization: enabled    # 开启用户权限验证
    

4. 启动与设置开机自启
使用systemctl管理MongoDB服务,确保服务稳定运行:

sudo systemctl start mongod    # 启动服务
sudo systemctl enable mongod   # 设置开机自启
sudo systemctl status mongod   # 验证服务状态(显示"active (running)"即为成功)

5. 安全加固

  • 创建管理员用户:连接MongoDB shell,切换至admin数据库创建具备管理权限的用户:
    mongo
    use admin
    db.createUser({
      user: "admin",
      pwd: "yourStrongPassword",  // 使用强密码
      roles: [{ role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase"]
    })
    
  • 防火墙设置:允许MongoDB端口(27017)通过防火墙:
    sudo ufw allow 27017/tcp     # Ubuntu(ufw)
    sudo firewall-cmd --permanent --add-port=27017/tcp  # CentOS(firewalld)
    sudo firewall-cmd --reload
    

6. 性能优化

  • 内核参数调优:调整系统参数提升性能(如文件描述符限制、内存管理):
    ulimit -n 64000              # 增加文件描述符限制(默认1024可能不足)
    echo "vm.dirty_background_ratio = 10" >> /etc/sysctl.conf  # 调整脏页刷新阈值
    echo "vm.dirty_ratio = 20" >> /etc/sysctl.conf
    sysctl -p                    # 应用配置
    
  • MongoDB配置优化:根据业务需求调整存储引擎(如WiredTiger)、缓存大小:
    storage:
      wiredTiger:
        engineConfig:
          cacheSizeGB: 4         # 分配4GB内存给WiredTiger缓存(根据服务器内存调整)
    operationProfiling:
      mode: slowOp               # 开启慢查询分析(记录执行时间超过100ms的操作)
      slowOpThresholdMs: 100
    

7. 验证配置

  • 检查服务状态sudo systemctl status mongod确认服务运行正常。
  • 连接测试:使用mongo命令连接,验证认证功能(启用认证后需输入用户名密码):
    mongo -u admin -p --authenticationDatabase admin
    
  • 查看日志tail -f /var/log/mongodb/mongod.log确认无报错信息。

0