sudo systemctl status mongod 确认服务是否运行,未运行则尝试启动。/var/log/mongodb/mongod.log,通过 tail -f 查看实时错误信息。/etc/mongod.conf 中 dbPath(数据目录)、logPath(日志路径)、port(端口)、bindIp(绑定IP)等配置是否正确。mongodb 用户(如 sudo chown -R mongodb:mongodb /var/lib/mongodb)。sudo netstat -tulnp | grep 27017 检查端口占用,通过 ufw allow 27017 开放防火墙端口。top、df -h 监控内存、磁盘空间是否充足。| 问题类型 | 具体表现 | 解决方案 |
|---|---|---|
| 服务无法启动 | Failed to start mongod |
检查日志中的配置错误(如路径错误、权限不足),修复后重启服务。 |
| 连接失败 | Connection refused |
确保服务运行,检查防火墙、bindIp 配置(默认仅本地访问,远程需设为 0.0.0.0)。 |
| 性能缓慢 | 查询延迟高 | 使用 mongostat 监控负载,优化索引(如通过 explain() 分析慢查询),调整 wiredTigerCacheSizeGB。 |
| 数据异常 | 数据丢失或不一致 | 检查副本集状态(rs.status()),确认写入操作是否成功,修复后重启服务。 |
| 依赖库错误 | libcrypto.so 缺失 |
安装缺失库(如 sudo apt-get install libssl-dev),更新动态链接库缓存。 |
mongostat(实时性能)、mongotop(集合级读写)、db.serverStatus()(服务器状态)。注意:操作前建议备份数据,重大配置修改后需重启服务生效。