使用systemctl
命令確認MongoDB服務是否正在運行,若未運行則嘗試啟動:
sudo systemctl status mongod # 查看服務狀態
sudo systemctl start mongod # 啟動服務
sudo systemctl enable mongod # 設置開機自啟(可選)
若啟動失敗,需結合日志進一步分析原因。
MongoDB的默認日志路徑為/var/log/mongodb/mongod.log
,通過以下命令實時查看最新日志或搜索關鍵詞(如“error”):
sudo tail -f /var/log/mongodb/mongod.log # 實時查看日志
sudo grep "error" /var/log/mongodb/mongod.log # 搜索錯誤信息
日志中通常包含服務啟動失敗、連接拒絕、查詢超時等具體錯誤描述,是故障定位的關鍵依據。
MongoDB的主配置文件為/etc/mongod.conf
,需檢查以下核心配置項是否正確:
storage.dbPath
:數據存儲目錄(如/var/lib/mongodb
),需確保目錄存在;systemLog.path
:日志文件路徑(如/var/log/mongodb/mongod.log
),需確保目錄可寫;net.bindIp
:綁定的IP地址(如127.0.0.1
僅本地訪問,0.0.0.0
允許遠程訪問);net.port
:監聽端口(默認27017
)。sudo systemctl restart mongod
MongoDB需要對其數據目錄(storage.dbPath
指定的路徑)有讀寫權限。默認數據目錄為/var/lib/mongodb
,執行以下命令確保權限正確:
sudo mkdir -p /var/lib/mongodb # 若目錄不存在則創建
sudo chown -R mongodb:mongodb /var/lib/mongodb # 修改所有者為mongodb用戶
sudo chmod -R 755 /var/lib/mongodb # 設置目錄權限(可選,755通常足夠)
權限問題常導致服務無法啟動或數據無法寫入。
netstat
或ss
命令確認MongoDB端口(默認27017
)未被其他進程占用:sudo netstat -tulnp | grep 27017 # 查看端口占用情況
sudo ss -tulnp | grep 27017 # 替代命令(更現代)
若端口被占用,需停止沖突進程或修改MongoDB的net.port
配置。27017
端口通過防火墻(如ufw
):sudo ufw allow 27017/tcp # 允許TCP協議的27017端口
sudo ufw reload # 重新加載防火墻規則
mongostat
:監控數據庫性能指標(如插入、查詢、更新操作的QPS),實時查看系統負載:mongostat # 默認每秒刷新一次
mongotop
:分析集合級別的讀寫時間,定位慢操作的熱點集合:mongotop # 默認每秒刷新一次
explain()
命令:分析查詢性能,查看查詢計劃(如是否使用了索引):use your_database;
db.your_collection.find({field: "value"}).explain("executionStats");
通過分析executionStats
中的executionTimeMillis
(執行時間)、winningPlan
(執行計劃)等字段,可優化查詢語句或索引。MongoDB的性能受系統資源限制,需檢查以下指標:
free -h
查看內存剩余情況,若內存不足可能導致頻繁交換(swap),影響性能;df -h
查看磁盤剩余空間,若磁盤空間不足(如小于10%),可能導致寫入失??;top
或htop
查看CPU占用率,若CPU過高可能導致查詢延遲。若使用較舊的MongoDB版本(如3.x或4.x),可能存在已知bug(如連接泄漏、性能問題)。建議升級到最新穩定版本(如6.x),升級前需備份數據并參考官方升級指南:
# 示例:卸載舊版本(謹慎操作,先備份)
sudo apt remove mongodb-org
# 安裝新版本(參考官方文檔)
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org
若以上步驟無法解決問題,可參考MongoDB官方文檔的故障排除指南(如Connection Issues、Performance Issues),或在社區論壇(如Stack Overflow、MongoDB Community)搜索類似問題的解決方案。