1. 检查MongoDB服务状态
使用systemctl命令确认MongoDB服务是否正在运行,若未运行则尝试启动并设置开机自启:
sudo systemctl status mongod # 检查服务状态
sudo systemctl start mongod # 启动服务
sudo systemctl enable mongod # 设置开机自启
2. 查看MongoDB日志文件
MongoDB的默认日志路径为/var/log/mongodb/mongod.log,通过tail命令实时查看最新日志,定位具体错误信息(如启动失败、连接拒绝等):
sudo tail -f /var/log/mongodb/mongod.log # 实时查看日志
sudo grep "error" /var/log/mongodb/mongod.log # 筛选错误日志
3. 确认配置文件正确性
检查MongoDB主配置文件/etc/mongod.conf的关键配置项,确保路径、端口、绑定IP等设置无误:
storage.dbPath:数据存储目录(如/var/lib/mongodb);systemLog.path:日志文件路径(如/var/log/mongodb/mongod.log);net.port:监听端口(默认27017);net.bindIp:绑定IP(127.0.0.1仅本地访问,0.0.0.0允许远程访问)。sudo systemctl restart mongod
4. 检查数据目录与权限
确认MongoDB数据目录(由storage.dbPath指定)存在,且所属用户为mongodb(默认用户):
sudo mkdir -p /var/lib/mongodb # 创建数据目录(若不存在)
sudo chown -R mongodb:mongodb /var/lib/mongodb # 修改目录所有者
sudo chmod -R 755 /var/lib/mongodb # 设置目录权限
5. 验证端口与网络配置
检查27017端口是否被MongoDB进程占用,以及防火墙是否允许该端口通信:
sudo netstat -tulnp | grep 27017 # 查看端口占用情况
sudo ufw allow 27017 # 允许端口通过防火墙(Debian默认使用ufw)
6. 使用内置工具诊断性能
db.collection.find().explain("executionStats"))。7. 检查系统资源使用情况
通过top、df等命令确认系统资源是否充足:
free -h # 查看内存使用情况
df -h # 查看磁盘空间剩余
top # 查看CPU占用率
8. 更新MongoDB版本
若使用旧版本MongoDB(存在已知bug),可通过官方仓库升级至最新稳定版(需提前备份数据):
# 添加MongoDB官方仓库(以Debian 11为例)
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] 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
sudo systemctl restart mongod
9. 查阅官方文档与社区资源
若上述步骤无法解决问题,参考MongoDB官方故障排除指南(如启动问题、连接问题),或在MongoDB社区论坛、Stack Overflow搜索类似案例。