Service mongod start 后服務(wù)沒(méi)有啟動(dòng)成功
查看日志(/var/log/mongodb/mongodb.log)有如下信息
Wiredtiger error(13).....file:WiredTiger.wt,connection:/var/lib/mongodb/WiredTiger.turtle:handle-open:open:Permission denied

問(wèn)題出現(xiàn)原因:
1、權(quán)限問(wèn)題。service mongod start啟動(dòng)時(shí)使用的用戶(hù)默認(rèn)為mongodb,具體可查看系統(tǒng)文件(/lib/systemd/system/mongod.service)

然后在查看(/var/lib/mongodb/WiredTiger.turtle)的文件權(quán)限,使用命令(cd /var/lib ,ls -l /var/lib/mongodb)查看權(quán)限發(fā)現(xiàn) WiredTiger.turtle以及其他若干個(gè)文件的權(quán)限為 root

所以由于mogodb用戶(hù)的權(quán)限無(wú)法訪問(wèn)root權(quán)限下的文件造成服務(wù)啟動(dòng)失敗。
但是為什么這幾個(gè)文件的權(quán)限會(huì)變?yōu)閞oot呢?我的原因是曾經(jīng)使用過(guò)root用戶(hù)操作過(guò)數(shù)據(jù)庫(kù)(在rootx下使用mongod命令等),導(dǎo)致文件的權(quán)限變化從而無(wú)法再使用(service mongod start)。
解決方案
方案一:
(chown -R mongodb:mongodb /var/lib/mongodb )將數(shù)據(jù)文件權(quán)限改回mongodb
(chown -R mongodb:mongodb /var/log/mongodb )將日志文件權(quán)限改回mongodb
然后再次啟動(dòng) service mongo start就可以了,但是如果在以root用戶(hù)去操作數(shù)據(jù)庫(kù)仍會(huì)出現(xiàn)上述問(wèn)題。同時(shí)官方極不推薦在root用戶(hù)下使用數(shù)據(jù)庫(kù)。
方案二(從安全性考慮不推薦):
修改(/lib/systemd/system/mongod.service)的user為root,Group為root,
然后再次啟動(dòng) service mongod start