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