CentOS 上 MongoDB 故障排查实操手册
一 快速定位流程
systemctl status mongodtail -f /var/log/mongodb/mongod.log/etc/mongod.conf 中的 dbPath、systemLog.path、bindIp 是否配置正确且路径可访问。/usr/bin/mongod -f /etc/mongod.conf(便于看到首次启动的致命错误)。systemctl restart mongod && systemctl status mongod。二 常见故障与修复对照表
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| 服务启动失败(Job failed) | systemctl status mongod 与日志首屏报错 |
查看 /var/log/mongodb/mongod.log 定位首个错误;前台运行 mongod -f /etc/mongod.conf 获取更详细初始化报错 |
| 端口被占用(如 27017) | `ss -lntp | grep 27017或netstat -tulpen |
| 无法连接(本地或远程) | mongosh 连接失败;服务状态正常 |
检查 bindIp:仅本机可连用 127.0.0.1,远程访问改为 0.0.0.0 并重启;确认防火墙放行 27017/tcp |
| 启动报 “Failed to unlink socket file /tmp/mongodb-27017.sock” | 日志或前台报错指向该 socket | 删除 socket:rm -f /tmp/mongodb-27017.sock,再 systemctl restart mongod |
| 异常退出或“卡死” | top/htop/free -m/df -h 检查资源;查看日志 |
释放内存/磁盘,必要时重启;若频繁崩溃,核查日志与配置、升级版本或回退变更 |
| 数据目录/日志目录权限错误 | ls -ld /var/lib/mongo /var/log/mongodb |
修正属主属组:chown -R mongod:mongod /var/lib/mongo /var/log/mongodb,再启动 |
| 异常关机/断电后无法启动 | 日志提示数据文件不一致 | 以修复模式启动:/usr/bin/mongod --config /etc/mongod.conf --repair,完成后正常启动 |
三 日志与配置的关键检查点
日志位置与实时查看:默认在 /var/log/mongodb/mongod.log,使用 tail -f 实时跟踪;必要时用 grep "关键字" /var/log/mongodb/mongod.log 快速筛选错误与警告。
配置项核对:在 /etc/mongod.conf 中重点确认以下项是否正确且目录可写:
systemctl restart mongod 并复核状态与日志。四 连接与网络问题排查
firewall-cmd --add-port=27017/tcp --permanent && firewall-cmd --reload。ls -l /tmp/mongodb-27017.sockrm -f /tmp/mongodb-27017.sock && systemctl restart mongod。/usr/bin/mongod -f /etc/mongod.conf,可快速暴露网络/权限/配置类错误。五 数据损坏与版本问题的处理
/usr/bin/mongod --config /etc/mongod.conf --repair,完成后正常启动;如仍异常,考虑从备份恢复。