mongoDB重裝或升級版本后,啟動失敗原因及解決方法
問題描述
重裝mongodb,或者升級mongdb版本后,重啟啟動也沒有任何錯誤提示,但是查看為失敗failed狀態(tài)。沒有啟動成功。
解決方案
我們需要確定問題的原因,MongoDB服務器啟動不起來可能有以下幾個原因:
接下來,我們將逐一解決這些問題。
1:檢查MongoDB服務是否已安裝
在Windows系統(tǒng)中,你可以通過“控制面板”->“程序和功能”來查看是否已經(jīng)安裝了MongoDB,如果沒有安裝,你可以從MongoDB的官方網(wǎng)站下載并安裝。
在Linux系統(tǒng)中,你可以使用以下命令來檢查MongoDB是否已經(jīng)安裝:
mongo --version
如果這個命令返回了MongoDB的版本信息,那么說明MongoDB已經(jīng)安裝,如果沒有返回任何信息,或者報錯,那么說明MongoDB沒有安裝或安裝不正確。
2:檢查MongoDB服務的配置文件
MongoDB的配置文件通常位于/etc/mongod.conf(Linux)或C:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg(Windows),你需要檢查這個文件中的配置是否正確,你需要確保bindIp參數(shù)設置為0.0.0.0或者一個特定的IP地址,以確保MongoDB可以從任何IP地址訪問,你還需要確保port參數(shù)設置的是你的MongoDB服務的監(jiān)聽端口。
3:檢查MongoDB服務的端口是否被其他程序占用
你可以使用以下命令來檢查你的系統(tǒng)上是否有其他程序正在使用MongoDB服務的端口:
netstat -ano | findstr "27017"
如果你看到輸出中有一個或多個行的狀態(tài)是LISTENING,那么你就需要關閉這些程序,或者將它們綁定到其他的端口。
4:檢查MongoDB服務的日志文件
MongoDB的日志文件通常位于/var/log/mongodb(Linux)或C:\Program Files\MongoDB\Server\4.4\log(Windows),你需要打開這個文件,查看其中的錯誤信息,這些錯誤信息可能會幫助你找到問題的原因。
如果你無法通過以上步驟解決問題,你可以嘗試在網(wǎng)上搜索更多的解決方案,或者尋求專業(yè)的技術支持。
mongoDB重裝或升級版本后啟動失敗原因
啟動報錯ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=14)
問題原因及解決方法:
1:權(quán)限問題
網(wǎng)上找了一圈,大多是這種答案,但是對我沒有效果,仍然是failed狀態(tài)。這里寫出來作為參考:
查看數(shù)據(jù)存儲目錄、日志目錄,和/tmp下的*.sock(*是通配符)的文件這三個目錄或文件的執(zhí)行權(quán)限,可通過mongod.conf配置文件查看目錄的具體位置。
數(shù)據(jù)存儲目錄(dbpath)的位置
chown -R mongodb:mongodb /var/lib/mongo
再修改日志目錄的權(quán)限
chown -R mongodb:mongodb /var/log/mongodb
最后還有一個文件需要開放用戶mongod的寫權(quán)限,該文件叫*.sock(*是通配符),在/tmp路徑下。
chown mongodb:mongodb /tmp/*.sock
最后重啟服務。
2:舊版本數(shù)據(jù)沒有清理,導致啟動失敗
在第一種方法,查看權(quán)限已經(jīng)是mongodb的權(quán)限,但是仍然啟動失敗。是數(shù)據(jù)存儲目錄/var/lib/mongodb,舊版本的數(shù)據(jù)沒有清理,導致重裝或升級后的mongodb沒法啟動。所以需要清空數(shù)據(jù)存儲目錄的所以文件。
sudo rm -fr /var/lib/mongodb/*
顯示如下,重啟成功顯示active狀態(tài)。
Mongodb啟動失敗相關問題解決方法小結(jié)
一、mongod突然啟動失敗,存在mongod.lock文件
查找文件 find / -name mongod.lock -d 刪除該文件 rm -rf mongod.lock 重新啟動 /data/mongodb/bin/mongod --config /data/mongodb/bin/mongodb.conf --replSet cloud 通過修改的方式啟動 /data/mongodb/bin/mongod --repair -f /data/mongodb/bin/mongodb.conf --replSet cloud
二、校驗配置文件的目錄是否正確
查看logpath和dbpath的路徑是否正確
三、系統(tǒng)硬盤占用滿了
看系統(tǒng)盤大小 df -lh 查看當前目錄下各個文件夾的大小 du -lh --max-depth=1 解決方案: 刪除對應的備份文件或擴容
四、子節(jié)點同步主節(jié)點數(shù)據(jù)失敗
主節(jié)點是好的,從節(jié)點某一次重啟不知為何就報 “infoMessage” : “could not find member to sync from”
原因:1.兩臺服務器時間沒有同步,時間差造成
2.數(shù)據(jù)差異太大,造成日志無法覆蓋差異
解決方案:
詳細查詢mongodb的子節(jié)點的全量同步和增量同步
1.關閉子節(jié)點
2.把數(shù)據(jù)目錄挪一下 別直接刪,最好是mv,然后建一個空的/opt/mongodb/shard2/data
mv /data/mongodb/data/db /data/mongodb/data/db_bak
3.重新啟動
到此這篇關于mongoDB重裝或升級版本后,啟動失敗原因及解決方法的文章就介紹到這了,更多相關mongoDB啟動失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Laravel?框架中使用?MongoDB?數(shù)據(jù)庫的操作
這篇文章主要介紹了Laravel?框架中使用?MongoDB?數(shù)據(jù)庫的問題及操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03MongoDB添加secondary節(jié)點的2種方法詳解
這篇文章主要給大家總結(jié)介紹了關于MongoDB添加secondary節(jié)點的2種方法,以及MongoDB secondary節(jié)點出現(xiàn)recovering狀態(tài)的解決方法,文中介紹的非常詳細,需要的朋友可以參考下2018-10-10