27

macbook air に mongoDB をインストールしようとしました。

公式ウェブサイトから圧縮ファイルをダウンロードし、そのファイルを解凍してルート ディレクトリに移動します。その後、そのディレクトリの下に /data/db と /log フォルダを作成しました。

これが私mongodb.configのDBの基本的な構成を説明したものです。

dbpath = /mongodb/data/db
logpath = /mongodb/log/mongo.log
logappend = true
#bind ip = 127.0.0.1
port = 27017

fork = true
rest = true
verbose = true
#auth = true
#noauth = true

#さらに、構成ファイルの意味を知りたいです。

/mongodb/binこのファイルをに置きます。これ/mongodbは、ファイルを抽出したディレクトリです。

ターミナルを開いて入力./mongod --config mongodb.configすると、これが返されました。

Juneyoung-ui-MacBook-Air:bin juneyoungoh$ ./mongod --config mongodb.config
about to fork child process, waiting until server is ready for connections.
forked process: 1775
all output going to: /mongodb/log/mongo.log
ERROR: child process failed, exited with error number 100

このエラーを処理するにはどうすればよいですか?また、これは何を意味するのでしょうか?

4

9 に答える 9

34

あなたが作成したデータ フォルダは で作成された可能性が非常に高いsudoですよね? rootそれらは通常のユーザーによって所有されており、書き込み可能ではありません。あなたが Macbook の唯一のユーザーである場合は、ディレクトリの所有権をあなたに変更します。

sudo chown juneyoungoh /data
sudo chown juneyoungoh /data/db
sudo chown juneyoungoh /data/log

これを公共のマシンまたは合法的な場所にインストールする予定がある場合は、他の場所で mongo のセキュリティ慣行について詳しく読んでください。MacBook で実行するだけです。

于 2013-04-12T05:14:16.703 に答える
14

同様の問題がありましたが、「sudo」の問題とは関係ありませんでした。カーネルパニックから回復しようとしていました!

データ フォルダーを見ると、mongod.lock ファイルがそこにあることがわかりました。私の場合、このページが大いに役立ちました: http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ . 彼らが説明するように、

mongod.lock が 0 バイトのファイルでない場合、mongod は起動を拒否します。

このソリューションを自分の環境でテストしたところ、完全に機能しました。

  1. ファイルを削除しmongod.lockます。
  2. データベースを修復します。mongod --dbpath /your/db/path --repair
  3. mongod を実行します。mongod --dbpath /your/db/path
于 2014-10-10T14:41:06.593 に答える
9

私のマシンにも同じ問題がありました。ログファイルには次のものがありました:

月 7 月 29 日 09:57:13.689 [initandlisten] エラー: ジャーナル ファイルの空き容量が不足しています
月 7 月 29 日 09:57:13.689 [initandlisten] /var/mongoexp/rs2/journal で少なくとも 3379MB を利用可能にするか、--smallfiles を使用してください

を使用することで解決しましたmongod --smallfilesまたは、設定ファイルよりも--configオプションを指定して mongod を起動する場合は、先行書き込みジャーナリングを無効にしますnojournal=true(先頭の # を削除します)。ディスク容量を増やすと、上記の問題も解決します。

于 2013-07-29T08:52:26.617 に答える
3

同じエラーの同様の問題 - 修復スクリプトを実行しようとしました sudo -u mongodb mongod -f /etc/mongodb.conf --repair

デーモンps aux | grep mongoが実行されていることを確認しました。それを停止すると、修復スクリプトは問題なく実行されました。

他の誰かに役立つことを願っています。

于 2013-07-09T08:43:36.607 に答える
0

同じエラーが発生しました。ログを表示するために対話的に実行しました。

2014-10-21T10:12:35.418-0400 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017

次にlsof、どのプロセスが自分のポートを使用しているかを調べていました。

$ lsof -i:27017
COMMAND  PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mongod  2106 MYUSERID   10u  IPv4 0x635b71ec3b65b4a1      0t0  TCP *:27017 (LISTEN)

それはmongod私が以前にフォークしたもので、オフにするのを忘れていました (bash ウィンドウで実行されているのを見たことがなかったため)。を実行して強制終了するだけでkill 2106、エラー 100 なしでプロセスを実行できるようになりました。

于 2014-10-21T14:45:38.997 に答える