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()(服務器狀態)。注意:操作前建議備份數據,重大配置修改后需重啟服務生效。