2

私はMongoDBを初めて使用し、を実行しようとしていますmongod。と入力するmongoと、シェルを実行できます(^ Cでうまく終了します)が、入力しようとするmongodと、次のようになります。

mongod --help for help and startup options
Sat Nov 24 13:42:34 [initandlisten] MongoDB starting : pid=99910 port=27017 dbpath=/data/db/ 64-bit host=Macbook-err.local
Sat Nov 24 13:42:34 [initandlisten] 
Sat Nov 24 13:42:34 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Sat Nov 24 13:42:34 [initandlisten] db version v2.2.1, pdfile version 4.5
Sat Nov 24 13:42:34 [initandlisten] git version: nogitversion
Sat Nov 24 13:42:34 [initandlisten] build info: Darwin 172-26-13-128.dynapool.nyu.edu 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
Sat Nov 24 13:42:34 [initandlisten] options: {}
Sat Nov 24 13:42:34 [initandlisten] journal dir=/data/db/journal
Sat Nov 24 13:42:34 [initandlisten] recover : no journal files present, no recovery needed
Sat Nov 24 13:42:34 [websvr] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:28017
Sat Nov 24 13:42:34 [websvr] ERROR:   addr already in use
Sat Nov 24 13:42:34 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017
Sat Nov 24 13:42:34 [initandlisten] ERROR:   addr already in use
Sat Nov 24 13:42:34 [initandlisten] now exiting
Sat Nov 24 13:42:34 dbexit: 
Sat Nov 24 13:42:34 [initandlisten] shutdown: going to close listening sockets...
Sat Nov 24 13:42:34 [initandlisten] shutdown: going to flush diaglog...
Sat Nov 24 13:42:34 [initandlisten] shutdown: going to close sockets...
Sat Nov 24 13:42:34 [initandlisten] shutdown: waiting for fs preallocator...
Sat Nov 24 13:42:34 [initandlisten] shutdown: lock for final commit...
Sat Nov 24 13:42:34 [initandlisten] shutdown: final commit...
Sat Nov 24 13:42:34 [initandlisten] shutdown: closing all files...
Sat Nov 24 13:42:34 [initandlisten] closeAllFiles() finished
Sat Nov 24 13:42:34 [initandlisten] journalCleanup...
Sat Nov 24 13:42:34 [initandlisten] removeJournalFiles
Sat Nov 24 13:42:34 [initandlisten] shutdown: removing fs lock...
Sat Nov 24 13:42:34 dbexit: really exiting now

これはこのあたりの一般的な問題のようで、私は試しました:
mongod.lockファイルの削除rm /data/db/mongod.lock
修復:mongod --repair
プロセスの強制終了:killall -15 mongodそしてkillall -9 mongod
アクセス許可の変更を試みました:sudo chmod 0755 /data/dbそしてsudo chown $USER /data/db

私の許可は正しいようです:

drwxr-xr-x  4 slaffont  wheel  136 Nov 24 13:28 /data/db/

アイデアが足りなくなった。他の誰かがこの問題を抱えていましたか?私は何をすべきか?:(

4

6 に答える 6

3

あなたの主なコメントから、macports 経由で MongoDB をインストールしたようです (/opt インストール場所を指定)。私が考えていることは、macports のレシピが MongoDB を launchd サービスとしてインストールしたということです。

この場所で mongodb 関連の plist ファイル/Library/LaunchDaemons
を確認してください。見つかった場合は、システムがこのサービスを自動的に実行し続けることを意味します。mongod を手動で実行するだけの場合は、この plist を削除して再起動します。または、次のコマンドを試すことができます。
launchctl unload /Library/LaunchDaemons/path.to.mongo.plist

それ以外の場合は、別のポートで mongod の別のインスタンスを実行します。

于 2012-11-24T19:25:37.410 に答える
2

sudo rm /var/lib/mongodb/mongod.lock
sudo chown -R mongodb:mongodb /var/lib/mongodb/
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo サービス mongodb start
または代わりに最後の 1 回の試行: sudo mongod

于 2013-02-12T13:59:52.090 に答える
0

何かが既にポート 27017 にバインドされているようで、別のものmongodが実行されているように見えます (これは で強制終了されませんでしたkillall)。実行中のmongodプロセスの出力ps auxまたは表示はありますか?lsof -i :27017

これがまったく役に立たないことが判明した場合は、いつでもコマンドライン経由で--port <portnum>オプションをプロセスに渡し、別のポートでリッスンするように指示できます (シェルに同じオプションを使用して、27017 以外の別のポートに接続するように指示します。mongodmongo

于 2012-11-24T19:13:21.007 に答える
0

@shelmanが言ったように、すでにそのポートを使用しているものがありますが、何かが実行されているかどうかを理解するためのコマンドが間違っている場合は、次を試してください:

sudo netstat -lpn |grep :27017

私も気づいた:

Sat Nov 24 13:42:34 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

これは警告ですが、それでも注意が必要です。最近この問題を抱えている人に質問に答えました: Mongod は実行されますが、Mongo は役立つエラーを返します。

于 2012-11-24T22:15:52.557 に答える
0

これはよくある質問のようです:

この問題を解決した/解決したばかりの人として、おそらくあなたが遭遇しているのはこれです。最初に Mongo をインストールすると (たとえば apt-get 経由で)、Mongod プロセスが自動的に実行を開始します。例えば:

terekhov / $ sudo apt-get install mongodb-10gen
--Snip インストール プロセス --
完了。mongodb
start/running、プロセス 4467 ureadahead の
処理トリガー...
terekhov / $ service mongodb start start: ジョブは既に実行中です: mongodb


そのため、フォークされたデーモンなど が必要ない場合はmongo、コマンド シェルを開始するために入力するだけです。ポート 27017 で MongoDB デーモンを自動的に検索します。

次のコマンドを使用して、mongod プロセスを開始/停止/再起動できます。sudo service mongodb stop

于 2013-11-26T01:47:43.573 に答える