2011-12-12 125 views
16

我在Ubuntu 10.04 LTS上對MongoDB進行了不乾淨的關閉。現在,當我登錄爲根,並通過服務執行MongoDB MongoDB的開始,我得到下面的錯誤 -MongoDB - 拒絕套接字的權限:/tmp/mongodb-27017.sock

Mon Dec 12 13:53:15 [initandlisten] ERROR: listen(): bind() failed errno:13 Permission denied for socket: /tmp/mongodb-27017.sock 

當我通過手動根MongoDB的運行,它工作得很好。

我可以證實,沒有/tmp/mongodb-27017.sock文件

[email protected]:~# ll /tmp/ 
total 16 
drwxr-xr-x 4 root root 4096 2011-12-12 13:53 ./ 
drwxr-xr-x 25 root root 4096 2011-12-11 13:06 ../ 
drwxrwxrwt 2 root root 4096 2011-12-12 13:01 .ICE-unix/ 
drwxrwxrwt 2 root root 4096 2011-12-12 13:01 .X11-unix/ 

我從哪裏開始解決問題

回答

16

/tmp上的文件權限是什麼?他們有可能改變了嗎?

一個

# ls -ld /tmp 

會告訴你。

如果你不確定嘗試:

# chown root:root /tmp 
# chmod 1777 /tmp 

這可能會解決它。

+0

你是對的,在不乾淨的關機後,變得混亂了,/ tmp不能被MongoDb用戶寫入。 – user837208

+0

太好了。很高興我們找到了你的答案。 –

+0

你節省了我的一天。謝謝! –

0

確保Ubuntu mongo用戶有權訪問該文件。 Mongo Ubuntu服務使用Ubuntu Mongo用戶。要找到mongo用戶名,請轉至/ var/lib/mongodb目錄並顯示權限:ls -l

+0

'根@ devbox:〜#LS -l的/ var/lib中/ mongodb的 總共4 drwxr-XR-×2的mongodb mongodb的4096 2011-12-12 13點53軸頸 -rwxr-XR-X 1 mongodb mongodb 0 2011-12-12 13:53 mongod.lock' – user837208

17

嘗試改變所有者這樣,

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock 
+0

這解決了我的問題!謝謝 –

+0

感謝上帝,它終於工作了!謝謝!這很奇怪,因爲'/ tmp'對所有三個''rwx'都有權限,但是在我嘗試你的例子之前,操作是不被允許的。 – spicypumpkin

0

我有同樣的問題,因爲我的根必須使用執行MongoDB,它會啓動失敗,systemctl在CentOS 7.3。

請使用mongodb的正確權限。 $ sudo chown -R mongod:mongod \ /var/run/mongodb/mongod.pid \ /tmp/mongodb-27017.sock \ /var/lib/mongo/

如果我們有其他的失敗一樣Error reading file /path/file: Permission denied,也許我們可以通過SELinux的修復它。 $ sudo chcon -v -t mongod_var_lib_t /path/file

順便說一句,我不建議使用777權限,這是如此的危險。 :P

相關問題