调试 Debian 上的 MongoDB,一般可以从 服务状态、日志、配置、权限、端口、系统资源 这几个方面入手。下面给你一套比较系统的排查思路(适用于 Debian 10/11/12,MongoDB 4.4 / 5.x / 6.x 都通用)。
mongod --version
mongo --version # 旧版本
mongosh --version # 新版本(推荐)
如果命令不存在,说明没装好或路径不对。
sudo systemctl status mongod
常见状态说明:
active (running):正常failed:启动失败(重点看日志)sudo systemctl restart mongod
sudo systemctl enable mongod
MongoDB 默认日志位置:
/var/log/mongodb/mongod.log
实时查看:
sudo tail -f /var/log/mongodb/mongod.log
| 日志内容 | 含义 |
|---|---|
Permission denied |
数据目录权限问题 |
Address already in use |
端口被占用 |
IllegalOperation: Attempted to create a lock file |
目录不可写 |
Data directory /data/db not found |
数据目录未创建 |
MongoDB 配置文件一般在:
/etc/mongod.conf
重点检查:
storage:
dbPath: /var/lib/mongodb
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1
修改后重启:
sudo systemctl restart mongod
MongoDB 默认使用 mongodb 用户运行。
ls -ld /var/lib/mongodb
修复权限:
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chmod 755 /var/lib/mongodb
⚠️ 不要直接在 root 下跑 mongod
ss -lntp | grep 27017
或:
netstat -lntp | grep 27017
mongosh
或:
mongo
如果连不上:
mongosh --host 127.0.0.1 --port 27017
停止服务后:
sudo systemctl stop mongod
sudo -u mongodb mongod --config /etc/mongod.conf
✅ 错误信息会直接打印到终端,比 systemd 清楚很多。
df -h
free -h
MongoDB 对内存要求较高,低于 1GB 很容易异常。
需要手动加 MongoDB 官方源:
sudo apt install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] \
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/6.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install mongodb-org
Debian 12 默认 OpenSSL 3,MongoDB 5/6 可能出现问题:
mongod: /lib/x86_64-linux-gnu/libssl.so.3: version `OPENSSL_3.0.0' not found
✅ 解决:使用 MongoDB 6.0+ 或官网二进制包。
systemctl status mongod
tail -n 50 /var/log/mongodb/mongod.log
ss -lntp | grep 27017
ls -ld /var/lib/mongodb
mongosh
如果你愿意,可以把下面信息贴出来,我可以直接帮你定位问题:
systemctl status mongod 输出/var/log/mongodb/mongod.log 最后 30 行cat /etc/debian_version)我可以一步一步带你修 ✅