Mongodb
服務 mongod 無法啟動,更改 dbpath 時權限被拒絕 mongod.lock
我想要做的:將 mongodb 的 dbpath 從 /var/lib/mongodb 更改為 /home/user/mongodb/data
我使用數據庫版本 v3.4.7
我做了什麼
mkdir -p ~/mongodb/data sudo chown -R mongodb:mongodb /home/user/mongodb
更改 /etc/mongodb.conf
storage: dbPath: /home/user/mongodb/data/ journal: sudo mongod -f /etc/mongod.conf
這行得通。也試過
sudo mongod --dbpath /home/user/mongodb/data/
命令工作正常
sudo service mongod start
命令失敗。檢查日誌文件。
權限被拒絕:“/home/user/mongodb/data/mongod.lock”,終止
到底是怎麼回事?我已經嘗試了我所知道的一切。甚至嘗試將 chmod 777 設置為鎖定文件,但仍然拒絕權限。
如果你現在命令:
sudo chown -R mongodb:mongodb /home/user/mongodb sudo service mongod restart
它會起作用的!
這裡的問題是您向該目錄提供
sudo mongod --dbpath /home/user/mongodb/data/
了創建 ROOT 擁有文件的命令,/home/user/mongodb/data/
而您的“普通”mongodb 使用者無權覆蓋這些文件。因此,永遠不要以 root 身份啟動您的 mongod,或者如果您這樣做,請記住將這些數據文件的所有權重置回 mongodb。
我在 Centos 7 上使用 Mongo 4 執行“sudo mongod –dbpath /path/to/mongo”,這沒關係,但要按照此處的建議進行修復或工作,您必須刪除並安裝。
刪除時,請確保執行正確的命令以重新開始:
- sudo yum remove mongodb-org*(刪除所有配置)
然後重新安裝並繼續:
- sudo yum install -y mongodb-org
- sudo systemctl stop mongod
- mv / var / lib / mongo / {路徑} / mongo
- sudo vi /etc/mongod.conf(內聯 dbPath 將路徑更改為“/{path}/mongo”)
- chown mongod:mongod -R /{path}/mongo/
- sudo systemctl start mongod