温馨提示×

MongoDB在Debian上的部署流程

小樊
39
2025-11-15 13:14:36
栏目: 云计算

MongoDB在Debian上的部署流程

一 环境准备与版本选择

  • 确认系统版本与架构:cat /etc/os-release 与 uname -m,确保为受支持的 Debian 版本与 amd64/arm64 架构。
  • 选择 MongoDB 版本:建议优先选择受支持的 6.0 LTS7.0 系列,以兼顾功能与安全更新。
  • 准备工具与目录:确保具备 sudo 权限,规划数据与日志目录(如 /var/lib/mongodb/var/log/mongodb),并预留磁盘空间。

二 通过APT仓库安装

  • 更新索引并安装依赖:sudo apt update && sudo apt install -y ca-certificates curl gnupg
  • 导入 MongoDB 官方 GPG 公钥:wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor | sudo tee /usr/share/keyrings/mongodb-server-6.0.gpg > /dev/null
  • 添加 APT 源(以 Debian 11 Bullseye 为例,其他版本将代号替换为 bookworm/buster):echo “deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
  • 安装软件包:sudo apt update && sudo apt install -y mongodb-org
  • 说明:旧教程使用 apt-key add 的方式已不推荐,改用 signed-by 的 GPG 密钥环更安全;版本号可按需替换为 7.0

三 配置与启动服务

  • 核心配置 /etc/mongod.conf(示例):
    storage:
    dbPath: /var/lib/mongodb
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/mongod.log
    net:
    port: 27017
    bindIp: 127.0.0.1 # 如需远程访问,改为 0.0.0.0 并配合防火墙白名单
    processManagement:
    fork: true
    pidFilePath: /var/run/mongodb/mongod.pid
    security:
    authorization: enabled # 启用后需基于账户连接
  • 目录与权限:sudo mkdir -p /var/lib/mongodb /var/log/mongodb && sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb
  • 启动与开机自启:sudo systemctl daemon-reload && sudo systemctl start mongod && sudo systemctl enable mongod
  • 验证运行状态:sudo systemctl status mongod 与 tail -f /var/log/mongodb/mongod.log,确认监听 27017 且无报错。

四 安全加固与远程访问

  • 启用身份验证:在 /etc/mongod.conf 的 security 段设置 authorization: enabled,重启服务后创建管理员账户:
    mongosh
    use admin
    db.createUser({ user: “admin”, pwd: “StrongPassw0rd!”, roles: [“root”] })
    连接测试:mongosh -u admin -p --authenticationDatabase admin
  • 网络与防火墙:如需远程访问,将 bindIp 调整为 0.0.0.0 且仅开放必要来源;例如 UFW:sudo ufw allow from 192.0.2.0/24 to any port 27017,sudo ufw enable。
  • 传输加密:生产环境建议启用 TLS/SSL,在配置中指定证书与密钥后重启服务。
  • 最小权限原则:为应用创建具备所需权限的专用用户,避免使用 root 角色进行日常访问。

五 常见问题与扩展部署

  • 常见问题排查:
    • 端口未监听:检查 mongod.conf 的 net.port/bindIp、服务状态与防火墙规则。
    • 权限被拒:确认已启用 authorization 并使用正确的认证库连接。
    • 启动失败:查看 /var/log/mongodb/mongod.log 的错误细节,常见为目录权限或配置语法问题。
  • 扩展部署:
    • 副本集(高可用):在各节点配置 replication.replSetName,启动后于主节点执行 rs.initiate({…members:[{_id:0,host:“ip:27017”},…]}),用 rs.status() 验证。
    • 分片集群:部署 configsvr 副本集、多个 shard 副本集mongos,通过 mongos 执行 sh.addShard/enableSharding 等完成分片。

0