2011-11-21 269 views
1

我需要學習node.js和mongodb,它需要我使用我的mac osx,所以我是shell命令行界面的新手。mongodb安裝失敗

問題:當我按照mongodb網站上的指示並安裝了mongodb並嘗試運行時,出現以下錯誤消息。任何想法出了什麼問題?

我所做的:

  1. brew install mongodb
  2. sudo mkdir -p /data/db
  3. sudo chmod 0755 /data/db
  4. sudo chown mongod:mongod /data/db

錯誤:chown: mongod: Invalid argument

我所做的下一步:

  1. mongod

錯誤:

Mon Nov 21 18:55:08 [initandlisten] MongoDB starting : pid=28304 port=27017 dbpath=/data/db/ 64-bit host=MacBook-Air.local 
Mon Nov 21 18:55:08 [initandlisten] db version v2.0.1, pdfile version 4.5 
Mon Nov 21 18:55:08 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684 
Mon Nov 21 18:55:08 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40 
Mon Nov 21 18:55:08 [initandlisten] options: {} 
Mon Nov 21 18:55:08 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating 
Mon Nov 21 18:55:08 dbexit: 
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close listening sockets... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to flush diaglog... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close sockets... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: waiting for fs preallocator... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: lock for final commit... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: final commit... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: closing all files... 
Mon Nov 21 18:55:08 [initandlisten] closeAllFiles() finished 
Mon Nov 21 18:55:08 [initandlisten] shutdown: removing fs lock... 
Mon Nov 21 18:55:08 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor 
Mon Nov 21 18:55:08 dbexit: really exiting now 

做一個ls -ld /data/db給出:

drwxr-xr-x 2 root wheel 68 Nov 21 18:46 /data/db 

回答

1

Nyxynyx-

它看起來像一個文件的權限問題。你以root身份創建了/ data/db,所以root是所有者,並且chown命令失敗(你的系統中是否已經有名爲mongod的用戶?如果沒有,該命令將失敗),所以所有者仍然是root用戶。但是,然後以普通用戶身份運行mongod,因此無法在數據目錄中創建任何鎖定文件。 你可以:

  1. 運行的mongod爲根
  2. 或者,創建一個mongod的用戶,並運行「CHOWN」再次mongod的,並且運行的mongod作爲用戶的mongod
  3. 或者,改變的所有權數據目錄複製到當前用戶帳戶,然後運行mongo作爲用戶帳戶。
0

我有同樣的問題,這裏就是我的固定它真的很容易:

我的DB充滿了垃圾,我不想了,所以我通過終端和再刪我的/data/文件夾與創建它:

sudo mkdir /data/ 

我想創建通過終端的root訪問權限的文件夾是什麼原因造成的問題。相反,我只是再次刪除它,然後我使用Finder進入根文件夾。

右鍵 - >新建文件夾>輸入密碼>重命名爲數據>新建文件夾>重命名爲DB

然後,我只是跑的mongod我通常做,和它的工作!

我知道這是一個「虛擬」的做事方式,以避免所有hax權限等,但它的工作!

0

你需要用root用戶運行的mongod,只需運行以下命令

sudo mongod 
0

什麼ü沒有:

1.`brew install mongodb`-fine 
2.`sudo mkdir -p /data/db`-fine 
3.`sudo chmod 0755 /data/db`-fine 
4.`sudo chown mongod:mongod /data/db`-fine 

現在執行下一步:

./mongod --dbpath /data/db --port 27017

./mongo --port 27020