在 Debian 上 MongoDB 连接失败,常见原因和排查思路如下(从最常见到较少见):
最常见原因
systemctl status mongod
如果没运行:
sudo systemctl start mongod
sudo systemctl enable mongod
查看日志:
journalctl -u mongod -n 50
MongoDB 默认只监听 127.0.0.1
sudo nano /etc/mongod.conf
看 net 部分:
net:
bindIp: 127.0.0.1
port: 27017
若想远程连接:
bindIp: 0.0.0.0
然后重启:
sudo systemctl restart mongod
⚠️ 生产环境不建议直接 0.0.0.0,应配合防火墙和账号认证
sudo ss -lntp | grep 27017
sudo ufw allow 27017
云服务器还要检查安全组
本地连接:
mongo
# 或
mongosh
指定 IP:
mongosh mongodb://127.0.0.1:27017
远程:
mongosh mongodb://服务器IP:27017
如果 MongoDB 没开 authorization:
security:
authorization: enabled
却用:
mongosh -u user -p pass
会直接失败
✅ 解决:
Debian 12 默认可能 没有 mongodb 包(被移除了)
确认安装来源:
mongod --version
如果是自己加的 MongoDB 官方源,确保版本匹配
错误类似:
connect failed to /tmp/mongodb-27017.sock
可能是:
unixSocket检查:
ls -l /tmp/mongodb-27017.sock
systemctl status mongod
ss -lntp | grep 27017
cat /etc/mongod.conf | grep bindIp
ufw status
mongosh
如果你愿意,可以把报错信息原文贴出来(如 ECONNREFUSED、Authentication failed),我可以直接帮你定位是哪一类问题。