查看日誌(/var/log/mongodb/mongodb.log)有以下信息mongodb
Wiredtiger error(13).....file:WiredTiger.wt,connection:/var/lib/mongodb/WiredTiger.turtle:handle-open:open:Permission denied
service mongod start
啓動時使用的用戶默認爲mongodb
,具體可查看系統文件(/lib/systemd/system/mongod.service
)數據庫
其中含有安全
[Service] User=mongodb Group=mongodb
而後在查看(/var/lib/mongodb/WiredTiger.turtle
)的文件權限,使用命令spa
cd /var/lib ls -l /var/lib/mongodb
查看權限發現 WiredTiger.turtle
以及其餘若干個文件的權限爲 root日誌
因此因爲mogodb用戶的權限沒法訪問root權限下的文件形成服務啓動失敗。code
可是爲何這幾個文件的權限會變爲root呢?io
個人緣由是曾經使用過root用戶操做過數據庫(在rootx下使用mongod命令等),致使文件的權限變化從而沒法再使用(service mongod start)。file
# storage.dbPath chown -R mongodb:mongodb /var/lib/mongodb # systemLog.path sudo chown -R mongodb:mongodb /var/log/mongodb
將數據文件權限改回mongodb
service
而後再次啓動 service mongo start
就能夠了,可是若是在以root用戶去操做數據庫仍會出現上述問題。同時官方極不推薦在root用戶下使用數據庫。權限
修改
/lib/systemd/system/mongod.service
中的user
爲root
,Group
爲root
。
而後再次啓動 service mongod start