以下是MongoDB在CentOS上的故障排查步骤:
-
检查服务状态
systemctl status mongod若未启动,执行:
sudo systemctl start mongod sudo systemctl enable mongod # 设置开机自启 -
查看日志文件
- 系统日志:
journalctl -xe | grep mongod - MongoDB日志:
cat /var/log/mongodb/mongod.log
重点关注“ERROR”“Failed”等关键词。
- 系统日志:
-
验证配置文件
检查/etc/mongod.conf关键参数:bindIp:确保允许远程连接(如0.0.0.0)。port:默认27017,需与防火墙一致。dbPath:数据目录路径是否正确,权限是否为mongodb:mongodb。
-
排查端口与防火墙
- 检查端口占用:
sudo lsof -i :27017,若被占用则终止进程。 - 开放防火墙:
sudo firewall-cmd --add-port=27017/tcp --permanent && sudo firewall-cmd --reload。
- 检查端口占用:
-
检查磁盘与权限
- 确保数据目录(如
/data/db)有足够空间:df -h。 - 修复权限:
sudo chown -R mongodb:mongodb /data/db /var/log/mongodb。
- 确保数据目录(如
-
使用诊断工具
- 实时监控:
mongostat(查看性能指标)、mongotop(监控集合访问)。 - 连接测试:
mongo --host <服务器IP> --port 27017,验证远程访问。
- 实时监控:
-
处理认证问题
若启用认证,确保用户名/密码正确,且用户拥有对应数据库权限:use admin db.auth("用户名", "密码") -
其他高级操作
- 若服务异常崩溃,分析核心转储文件(需安装
crash工具)。 - 临时关闭SELinux:
sudo setenforce 0,测试是否为SELinux限制。
- 若服务异常崩溃,分析核心转储文件(需安装
提示:操作前建议备份数据,若无法解决可参考MongoDB官方文档或社区论坛。[1,2,3,4,5,6,7,8,9,10]