2014-06-14 65 views
1
運行的MongoDB

我試圖運行與軌道蒙戈我得到以下錯誤錯誤MacOSX上

Harshas-MacBook-Pro:~ harshamv$ mongo 
MongoDB shell version: 2.6.1 
connecting to: test 
2014-06-14T12:07:46.356+0530 warning: Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused 
2014-06-14T12:07:46.357+0530 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146 
exception: connect failed 

當我嘗試修復的MongoDB

Harshas-MacBook-Pro:nomad harshamv$ mongod --repair 
2014-06-14T11:06:52.964+0530 [initandlisten] MongoDB starting : pid=5504 port=27017 dbpath=/data/db 64-bit host=Harshas-MacBook-Pro.local 
2014-06-14T11:06:52.964+0530 [initandlisten] 
2014-06-14T11:06:52.964+0530 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 
2014-06-14T11:06:52.964+0530 [initandlisten] db version v2.6.1 
2014-06-14T11:06:52.964+0530 [initandlisten] git version: nogitversion 
2014-06-14T11:06:52.964+0530 [initandlisten] build info: Darwin minimavericks.local 13.1.0 Darwin Kernel Version 13.1.0: Wed Apr 2 23:52:02 PDT 2014; root:xnu-2422.92.1~2/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49 
2014-06-14T11:06:52.964+0530 [initandlisten] allocator: tcmalloc 
2014-06-14T11:06:52.964+0530 [initandlisten] options: { repair: true } 
2014-06-14T11:06:52.964+0530 [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 
2014-06-14T11:06:52.964+0530 [initandlisten] dbexit: 
2014-06-14T11:06:52.964+0530 [initandlisten] shutdown: going to close listening sockets... 
2014-06-14T11:06:52.964+0530 [initandlisten] shutdown: going to flush diaglog... 
2014-06-14T11:06:52.964+0530 [initandlisten] shutdown: going to close sockets... 
2014-06-14T11:06:52.964+0530 [initandlisten] shutdown: waiting for fs preallocator... 
2014-06-14T11:06:52.964+0530 [initandlisten] shutdown: closing all files... 
2014-06-14T11:06:52.964+0530 [initandlisten] closeAllFiles() finished 
2014-06-14T11:06:52.964+0530 [initandlisten] shutdown: removing fs lock... 
2014-06-14T11:06:52.964+0530 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor 
2014-06-14T11:06:52.964+0530 [initandlisten] dbexit: really exiting now 

這是錯誤,當我是我得到試圖運行我的Rails應用程序

Moped::Errors::ConnectionFailure in VenuesController#index 
Could not connect to a primary node for replica set #<Moped::Cluster:70100620147140 @seeds=[<Moped::Node resolved_address="127.0.0.1:27017">]> 

回答

4

錯誤Unable to create/open lock file可以由以下原因引起獲取進程數這三樣東西:

  1. MongoDB的進程正在運行,並且未響應
  2. 你以前的MongoDB的過程中沒有關閉乾淨。
  3. 您沒有該文件夾/文件的寫入權限。

案例1:

您需要檢查是否mongod進程處於活動狀態。在你的終端控制檯,輸入:

ps aux | grep mongod 

如果你能看到一個過程中,你可以殺了它:

kill $(pidof mongod)

kill -2 $(pidof mongod)

使用選項只能作爲最後的手段。

您還需要刪除舊的mongod.lock文件,然後開始mongod

案例2:

如果不是一個主動的過程,然後MongoDB中沒有乾淨地關閉。

你只需要刪除mongod.lock文件,然後開始mongod

案例3:

如果刪除了文件mongod.lock和你得到同樣的錯誤,你應該檢查你的dbpath文件夾(/data/db/)的權限。如果你用sudo啓動了mongod,就會發生這種情況。

您的用戶或mongod應該是該文件夾的所有者。你可以改變它:

chown -R $(id -u) /data/db 
2

mongodb的另一個進程/實例正在後臺運行,因此先終止它。即使沒有這樣的進程正在運行,您需要轉到您的mongodb數據目錄所在的位置,並清除名稱爲.lock(mongod.lock)的結尾擴展名的文件中的內容。只有這樣你才能夠正確運行mongodb。

步驟來終止一個進程:

  1. 瀏覽到「終端」的位置/Applications/Utilities並雙擊。

  2. 運行ps aux | grep mongo

  3. 然後運行kill -9 <PROCESS-ID>爲您在第一行(我相信會有總共兩行,除非多個進程具有類似名稱的運行。)

+0

如何終止進程? bcos我無法進入mongo並進入mondogb終端。 –