- 首页 >
- 问答 >
-
云计算 >
- MongoDB在Debian上的部署流程
MongoDB在Debian上的部署流程
小樊
39
2025-11-15 13:14:36
MongoDB在Debian上的部署流程
一 环境准备与版本选择
- 确认系统版本与架构:cat /etc/os-release 与 uname -m,确保为受支持的 Debian 版本与 amd64/arm64 架构。
- 选择 MongoDB 版本:建议优先选择受支持的 6.0 LTS 或 7.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 等完成分片。