首先確認MongoDB服務是否正在運行,使用以下命令查看服務狀態:
sudo systemctl status mongod
若服務未運行(顯示“inactive”或“failed”),嘗試啟動服務:
sudo systemctl start mongod
啟動失敗時,需進一步查看日志定位原因。
日志是故障排查的核心依據,Debian下MongoDB默認日志路徑為/var/log/mongodb/mongod.log。使用以下命令實時查看最新日志:
sudo tail -f /var/log/mongodb/mongod.log
若日志路徑被修改,可通過配置文件/etc/mongod.conf中的systemLog.path確認。
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)是否未被其他進程占用。mongod --config /etc/mongod.conf --eval
若配置有誤,修正后需重啟服務:
sudo systemctl restart mongod
```。
#### **4. 檢查數據目錄與權限**
MongoDB需要對其數據目錄(`storage.dbPath`指定的路徑)有讀寫權限。默認路徑為`/var/lib/mongodb`,執行以下命令修復權限:
```bash
sudo mkdir -p /var/lib/mongodb # 若目錄不存在則創建
sudo chown -R mongodb:mongodb /var/lib/mongodb # 修改所有者為mongodb用戶
sudo chmod -R 755 /var/lib/mongodb # 設置適當權限
權限問題常導致服務無法啟動或數據無法寫入。
MongoDB默認使用27017端口,若該端口被其他進程占用,會導致服務無法啟動。使用以下命令檢查端口占用:
sudo netstat -tulnp | grep 27017
若發現占用進程,可選擇停止該進程(sudo kill -9 <PID>)或修改MongoDB配置文件中的net.port為其他端口(如27018)。
MongoDB運行需要足夠的系統資源,使用以下命令檢查資源使用情況:
free -h(查看可用內存,若內存不足可能導致服務崩潰);df -h(查看數據目錄所在分區剩余空間,若空間不足需清理);top(查看CPU占用率,過高可能導致查詢緩慢)。mongo
db.adminCommand({ serverStatus: 1 }) # 查看服務器整體狀態(連接數、內存使用等)
db.currentOp() # 查看當前正在執行的操作(排查長時間運行的查詢)
operationProfiling.slowOpThresholdMs),使用db.currentOp()定位慢查詢,優化索引。bindIp配置(是否允許遠程訪問)、防火墻規則(sudo ufw allow 27017)、網絡連通性(ping <IP>);mongostat監控性能指標(如讀寫延遲、QPS),優化查詢語句(添加索引)、調整內存分配。若以上步驟無法解決問題,嘗試更新MongoDB到最新穩定版本(參考官方升級指南),或查閱MongoDB官方文檔、社區論壇(如Stack Overflow)獲取幫助。提供詳細的錯誤日志和系統環境信息,有助于快速定位問題。