在 Debian 上配置 MongoDB(通常指官方 MongoDB Server,而非系统自带旧版包)时,有几个容易踩坑的点和推荐做法,下面按重要性梳理。
apt install mongodbDebian 默认仓库里的 mongodb 通常是很旧的版本,甚至只是客户端。
✅ 推荐:使用 MongoDB 官方 APT 源
# 示例(以 7.0 为例)
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
apt update
apt install -y mongodb-org
MongoDB 默认数据目录:
/var/lib/mongodb
常见问题:
正确做法:
chown -R mongodb:mongodb /var/lib/mongodb
chmod 700 /var/lib/mongodb
Debian 使用 systemd,注意:
systemctl enable mongod
systemctl start mongod
查看状态:
systemctl status mongod
journalctl -u mongod -n 50
⚠️ 如果启动失败,90% 原因在日志里写得很清楚(权限 / 配置 / 端口)
配置文件:
/etc/mongod.conf
常见注意点:
默认只监听 127.0.0.1
如果需要远程访问:
net:
bindIp: 0.0.0.0
⚠️ 公网暴露必须加认证
security:
authorization: enabled
然后创建管理员:
use admin
db.createUser({
user: "admin",
pwd: "强密码",
roles: ["root"]
})
MongoDB 默认使用 WiredTiger:
建议:
Debian 默认开启 THP,会导致 MongoDB 延迟抖动。
关闭方法:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
并写入开机脚本(或 systemd unit)。
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
不要用 cp 直接拷数据目录
✅ 使用:
mongodump
mongorestore
| Debian | MongoDB |
|---|---|
| 11 (Bullseye) | 5.0 / 6.0 |
| 12 (Bookworm) | 6.0 / 7.0 |
| 现象 | 原因 |
|---|---|
| 启动失败 | 权限 / 配置错误 |
| 连不上 | bindIp 限制 |
| CPU 高 | THP 未关 |
| 数据丢失感 | 没开 journal |
如果你愿意,我可以:
你现在是 学习 / 开发 / 生产环境?