1. 檢查MongoDB服務狀態
使用systemctl
命令確認MongoDB服務是否正在運行,若未運行則嘗試啟動并設置開機自啟:
sudo systemctl status mongod # 檢查服務狀態
sudo systemctl start mongod # 啟動服務
sudo systemctl enable mongod # 設置開機自啟
2. 查看MongoDB日志文件
MongoDB的默認日志路徑為/var/log/mongodb/mongod.log
,通過tail
命令實時查看最新日志,快速定位錯誤信息(如啟動失敗、查詢異常):
sudo tail -f /var/log/mongodb/mongod.log # 實時查看日志
sudo grep "error" /var/log/mongodb/mongod.log # 篩選錯誤日志
3. 驗證配置文件正確性
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
)是否被占用。sudo systemctl restart mongod
4. 檢查數據目錄權限
MongoDB進程需對數據目錄(如/var/lib/mongodb
)有讀寫權限,若權限不足會導致啟動失敗。使用以下命令修復:
sudo mkdir -p /var/lib/mongodb # 創建數據目錄(若不存在)
sudo chown -R mongodb:mongodb /var/lib/mongodb # 修改所有者
sudo chmod -R 755 /var/lib/mongodb # 設置目錄權限
5. 檢查網絡與防火墻設置
確保MongoDB監聽的端口(默認27017
)未被防火墻阻止,使用ufw
開放端口:
sudo ufw allow 27017/tcp # 允許TCP端口27017
sudo ufw reload # 重新加載防火墻規則
同時,使用netstat
或ss
命令檢查端口是否被占用:
sudo netstat -tulnp | grep 27017 # 查看端口占用情況
sudo ss -tulnp | grep 27017 # 替代命令(更現代)
6. 使用MongoDB工具診斷
db.serverStatus()
查看服務器狀態,db.stats()
查看數據庫統計信息);mongo # 連接本地MongoDB
> db.serverStatus() # 查看服務器狀態
> use your_database; db.your_collection.stats() # 查看集合統計信息
7. 檢查系統資源使用情況
確保系統有足夠的內存、CPU和磁盤空間供MongoDB運行:
free -h # 查看內存使用情況
top # 查看CPU使用率
df -h # 查看磁盤空間(重點關注數據目錄所在分區)
8. 更新MongoDB版本
若使用舊版本MongoDB(如4.x),可能存在已知bug,建議升級到最新穩定版(如6.x)。升級前需備份數據,并參考MongoDB官方升級指南操作。
9. 查閱官方文檔與社區資源
若上述步驟無法解決問題,可參考MongoDB官方文檔(如故障排除指南)或在社區論壇(如Stack Overflow、MongoDB Community)搜索類似問題的解決方案。