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,需重点检查以下关键配置项:
storage.dbPath:数据存储目录(如/var/lib/mongodb)是否存在;systemLog.path:日志文件路径是否可写;net.bindIp:绑定的IP地址(127.0.0.1仅本地访问,0.0.0.0允许远程访问);net.port:监听端口(默认27017)是否被占用。sudo systemctl restart mongod
4. 检查数据目录权限
MongoDB进程需对数据目录(如/var/lib/mongodb)有读写权限,若权限不足会导致启动失败。使用以下命令修复:
sudo mkdir -p /var/lib/mongodb # 创建数据目录(若不存在)
sudo chown -R mongodb:mongodb /var/lib/mongodb # 修改所有者
sudo chmod -R 755 /var/lib/mongodb # 设置目录权限
5. 检查网络与防火墙设置
确保MongoDB监听的端口(默认27017)未被防火墙阻止,使用ufw开放端口:
sudo ufw allow 27017/tcp # 允许TCP端口27017
sudo ufw reload # 重新加载防火墙规则
同时,使用netstat或ss命令检查端口是否被占用:
sudo netstat -tulnp | grep 27017 # 查看端口占用情况
sudo ss -tulnp | grep 27017 # 替代命令(更现代)
6. 使用MongoDB工具诊断
db.serverStatus()查看服务器状态,db.stats()查看数据库统计信息);mongo # 连接本地MongoDB
> db.serverStatus() # 查看服务器状态
> use your_database; db.your_collection.stats() # 查看集合统计信息
7. 检查系统资源使用情况
确保系统有足够的内存、CPU和磁盘空间供MongoDB运行:
free -h # 查看内存使用情况
top # 查看CPU使用率
df -h # 查看磁盘空间(重点关注数据目录所在分区)
8. 更新MongoDB版本
若使用旧版本MongoDB(如4.x),可能存在已知bug,建议升级到最新稳定版(如6.x)。升级前需备份数据,并参考MongoDB官方升级指南操作。
9. 查阅官方文档与社区资源
若上述步骤无法解决问题,可参考MongoDB官方文档(如故障排除指南)或在社区论坛(如Stack Overflow、MongoDB Community)搜索类似问题的解决方案。