簡體   English   中英

為什么我不能啟動mongodb

[英]why can't I start the mongodb

這是錯誤:

(mysite)zjm1126@zjm1126-G41MT-S2:~$ /usr/local/mongodb/bin/mongod 
/usr/local/mongodb/bin/mongod --help for help and startup options
Wed Apr 27 10:02:41 [initandlisten] MongoDB starting : pid=2652 port=27017 dbpath=/data/db/ 32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations
**       with --dur, the limit is lower

Wed Apr 27 10:02:41 [initandlisten] db version v1.8.1, pdfile version 4.5
Wed Apr 27 10:02:41 [initandlisten] git version: a429cd4f535b2499cc4130b06ff7c26f41c00f04
Wed Apr 27 10:02:41 [initandlisten] build sys info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37
Wed Apr 27 10:02:41 [initandlisten] exception in initAndListen std::exception: Unable to create / open lock file for lockfilepath: /data/db/mongod.lock errno:13 Permission denied, terminating
Wed Apr 27 10:02:41 dbexit: 
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close listening sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to flush diaglog...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: waiting for fs preallocator...
Wed Apr 27 10:02:41 [initandlisten] shutdown: closing all files...
Wed Apr 27 10:02:41 closeAllFiles() finished
Wed Apr 27 10:02:41 [initandlisten] shutdown: removing fs lock...
Wed Apr 27 10:02:41 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Wed Apr 27 10:02:41 dbexit: really exiting now

啟動MongoDB的用戶帳戶需要具有對/data/db/目錄的寫權限 ...您可以像這樣更改它...

此命令將/data/db/的所有者更改為正在使用的用戶帳戶。

$ sudo chown `id -u` /data/db
$ mongod 

如果仍然遇到啟動MongoDB的問題,則需要刪除/data/db/mongod.lock ,然后對數據庫運行修復...

mongod --repair

更多關於修復命令的信息

無論是sudo調用mongod或更改的權限/data/db/mongod.lock以便它是你寫的。

我通過在mongodb上做了一個chown來解決這個問題。

sudo chown -R mongodb:mongodb /data

這是因為,當你這樣做

ls -lrth /data
drwxr-xr-x 2 mongodb mongodb  6 Jan  5 02:31 journal
-rwxr-xr-x 1 mongodb mongodb  0 Jan  5 02:31 mongod.lock
drwxr-xr-x 2 ubuntu  root    24 May  8 20:02 configdb

希望這可以幫助。

確保沒有運行mongod實例。

這對我有用。 我首先通過查看終端來檢查是否在后台運行了一個實例:ps aux | grep mongo

我看到有:48358 bla bla mongod

所以我殺了它:殺掉48358

然后我就能運行得很好。

在這里,我是如何解決它的

  1. 刪除鎖定文件后,我使用sudo mongod --repair --config=/etc/mongodb.conf修復了它sudo mongod --repair --config=/etc/mongodb.conf ,之后我使用ls -l /var/lib/mongodb/mongod.lock檢查了mongod.lock權限
  2. 它顯示root是鎖定文件的所有者,所以我使用sudo chown mongodb:mongodb /var/lib/mongodb/*將其更改回sudo chown mongodb:mongodb /var/lib/mongodb/*
  3. 然后使用sudo service mongodb restart重啟mongodb服務

如果要搶救副本集的成員, 請不要使用上述方法。 而是使用MongoDBReSync文檔中描述的過程。

在使用brew進行標准安裝后的Mac OSX Yosemite上:

sudo chown -R `id -u` /data/db

如果它沒有啟動(檢查是否沒有掛起和阻塞連接):

lsof -i:27017

輸出如下:

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mongod  16948 andi    8u  IPv4 0x883a71bc9412939d      0t0  TCP *:27017 (LISTEN)

取值PID並運行:

kill -9 <PID>

現在你應該能夠啟動mongo服務器: mongod然后例如在單獨的控制台窗口中使用mongo連接它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM