web-dev-qa-db-ja.com

なぜ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
36
zjm1126

MongoDBを起動するユーザーアカウントには、/data/db/ディレクトリへの書き込み権限が必要です...これを次のように変更できます...

このコマンドは、/data/db/の所有者を使用中のユーザーアカウントに変更します。

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

それでもMongoDBの起動で問題が発生する場合は、/data/db/mongod.lockを削除してからデータベースの修復を実行する必要があります...

mongod --repair

修復コマンドの詳細 here

86
Justin Jenkins

Sudoの呼び出しmongodか、/data/db/mongod.lockそのため、ユーザーが書き込み可能です。

14
Austin Taylor

私はmongodb ieで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

お役に立てれば。

11
Swathi

Mongodインスタンスが実行されていないことを確認してください。

これは私のために働いたものです。次のようにターミナルを見て、最初にバックグラウンドで実行されているインスタンスがあるかどうかを確認しました。 grep mongo

そして、私は48358 bla bla mongodがあることがわかりました

だから私はそれを殺した:48358を殺す

そして、私はそれをうまく実行することができました。

5
user3604647

ここで、私はそれを解決した方法

  1. ロックファイルを削除した後、Sudo mongod --repair --config=/etc/mongodb.confを使用して修復しました。その後、ls -l /var/lib/mongodb/mongod.lockを使用してmongod.lock権限をチェックしました
  2. ルートがロックファイルの所有者であることを示していたので、Sudo chown mongodb:mongodb /var/lib/mongodb/*を使用してmongodbに戻しました
  3. Sudo service mongodb restartを使用してmongodbサービスを再起動します
4
Sanjay Jain

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で接続します

0
andilabs

レプリカセットのメンバーをレスキューする場合do n't上記の方法を使用します。代わりに、 MongoDBのReSync-documentation で説明されている手順を使用してください。

0
H6.