サーバー127.0.0.1 shell / mongo.jsに接続できませんでした


88

私がubuntuでmongodbを設定するとき、私は試してみます:./mongoそれはこのエラーを表示します:

 couldn't connect to server 127.0.0.1 shell/mongo.js

じゃあどうすればいい 、

ありがとう


どのようにインストールしましたか?あなたは適性を使用しましたか?tarbalを直接ダウンロードしましたか?
ブライアンMigliorisi

1
このエラーが発生しました。ubuntuではmongod最初に実行しなかったためです
Connor Leech、2014

回答:


124
  • ロックファイルを手動で削除します。 sudo rm /var/lib/mongodb/mongod.lock
  • 修復スクリプトを実行します。 sudo -u mongodb mongod -f /etc/mongodb.conf --repair

次の点に注意してください:

  • このコマンドは、mongodbユーザーとして実行する必要があります。rootとして実行すると、rootは/ var / lib / mongodb /にあるファイルを所有し、mongodbデーモンを実行するために必要となるため、デーモンがmongodbユーザーとして後で実行しようとすると、起動する権限がありません。 。その場合、次のエラーが発生します。lockfilepathのロックファイルを作成/開くことができません:/var/lib/mongodb/mongod.lock errno:13権限が拒否され、終了します。
  • Ubuntuでは、-fフラグを使用して構成ファイル/etc/mongodb.confを指定する必要があります。そうでない場合は、間違った場所でデータファイルが検索され、次のエラーが表示されます。dbpath(/ data / db /)が存在せず、終了します。

素晴らしいリンク。問題を正確に解決しました。
jaketrent 2012年

1
答えは今以上です。
ファディモハメドオスマン

2
mongodbユーザーとしてそれを実行する方法?
user4951 2012

自分をmongodbグループに追加するだけです。useradd -G mongodb fady fadyを自分のユーザー名に置き換えます。
ファディモハメドオスマン2012

2
この回答の情報と@boulder_rubyの回答の両方を使用する必要がありました。これは、「/ data / db /」が見つからなかったためです。たぶん、この回答をより完全にするための良いアップデートかもしれません。
Fabricio Buzeto 2013年

32
sudo rm /var/lib/mongodb/mongod.lock   
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo service mongodb start

これらはすべて、場合によっては、これらの操作を実行してからmongoを開始するのに少し時間がかかることがあります。


私がしようとした場合、 `sudoの-uのMongoDBのmongod -f /etc/mongodb.conf --repair`ここでは私が得るものです:Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Aleksandrus

21

$ mongodを実行してみる

次のようなエラーが発生した場合

MongoDB shell version: 2.0.5
connecting to: test
Fri Jun  1 11:20:33 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed

hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
Fri Jun  1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit host=hisham-agil.local
Fri Jun  1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5
Fri Jun  1 11:24:47 [initandlisten] git version: nogitversion
Fri Jun  1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Fri Jun  1 11:24:47 [initandlisten] options: {}
Fri Jun  1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating
Fri Jun  1 11:24:47 dbexit: 
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to close listening sockets...
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to flush diaglog...
Fri Jun  1 11:24:47 [initandlisten] shutdown: going to close sockets...
Fri Jun  1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator...
Fri Jun  1 11:24:47 [initandlisten] shutdown: lock for final commit...
Fri Jun  1 11:24:47 [initandlisten] shutdown: final commit...
Fri Jun  1 11:24:47 [initandlisten] shutdown: closing all files...
Fri Jun  1 11:24:47 [initandlisten] closeAllFiles() finished
Fri Jun  1 11:24:47 dbexit: really exiting now

次に、かなり一般的な基本的な起動エラーが発生しました。

デフォルトでは、mongodはデータベースファイルに/ data / dbを使用しようとしますが、この場合は存在しません。

始められない

mongo 

あなたが処理するまで

mongod.

それらのディレクトリを作成して、mongodプロセスを実行しているのと同じユーザーが書き込み可能であることを確認してください。

**同様の質問を参照してください- エラーが発生する、「エラー:サーバー127.0.0.1 shell / mongo.jsに接続できませんでした」&mac osx lionでmongodbを実行しようとすると


次のようにdbpathを設定することもできます。mongod
dbpath

20

これは実際にはエラーではありません...ここで起こることは、Mongo がローカルデータベースサーバーを実行するためにデーモンに依存していることです。したがって、シェルでmongoサーバーを「起動」するには、mongoサービスを開始する必要があります。最初。

以下のためのFedoraのLinux(ディストリビューションIの使用であるウィッヒ)あなたはこれらのコマンドを実行する必要があります。

1 sudo service mongod start
2 mongo

そして、あなたはそれを持っています!サーバーが実行されます。ここで、システムの起動時にMongoサービスを開始する場合は、次のコマンドを実行する必要があります。

sudo chkconfig --levels 235 mongod on

そしてそれだけです!その場合は、シェルでmongoと入力するだけです。サーバーを起動するためにと入力する必要がありますが、それだけです。問題は、まずSERVICEを起動し、次にSERVERを起動する必要があることです。

PS私が投稿したコマンドは、fedoraだけでなく他のLinuxディストリビューションでも機能する可能性があります... 使用しているディストリビューションに応じて、いくつかの単語微調整する必要がない場合があります;)


同じソリューションは、質問に適用されます。stackoverflow.com/questions/7958228/...
Jmlevick

何度も困惑し、長い間頭を悩まして、ついに気づきました。「ああ、sudoしなければなりません。」
ben作者

2
Debian / Ubuntuバリアントの場合: sudo service mongodb start
ljs.dev

10

mongoをインストールしようとしたときにも同じ問題が発生しました。エラーが発生しました、

エラー

"Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84"

解決:

まず、以下を使用してmongodをインストールします。

sudo apt-get install mongodb-server

次に入力します

mongod --dbpath /mongo/db

その後

sudo rm /var/lib/mongodb/mongod.lock

その後

sudo -u mongodb mongod -f /etc/mongodb.conf  --repair

ありがとうございました


このメソッドは、mongoの既存のデータベースを削除しますか?
エヴァン

6

あなたは、ロックファイルを削除する必要があるmongod.lockか、/var/lib/mongodb/mongod.lockそして、あなたが実行する必要があり、Ubuntuの上をmongod.exeまたはservice mongodb start実行し、最初のUbuntuの上mongo.exeまたはmongoUbuntuで。


OPはUbuntu上にあるので、彼らが.exeファイルを使用しないと確信しています。
me_and

このエラーメッセージが表示され、ファイルシステムに「mongod.lock」が見つかりません。これらの手順はMac OSXに適用されますか?
boulder_ruby 2012

5

mongodが実行されていない( "ps"コマンドを使用して確認する)か、ローカルホストではなく外部IPアドレスをリッスンしています。したがって、最初に「mongod」が実行されているかどうかプロセスリストを確認します。ある場合は、「netstat -nap」で関連するポートを確認してください。

もちろん、コンソールでmongodを手動で起動したり、mongodログファイルを調べたりすることもできます(設定されている場合は... mongodのインストール方法によって異なります)。


5

まず、/ var / lib / mongodb /フォルダー(またはdbpathが指すフォルダー)内のすべてのファイルとディレクトリが、mongodbユーザーとmongodbグループに属していることを確認する必要があります。

cd /var/lib/mongodb/
sudo chown mongodb filename.*
sudo chgrp mongodb filename.*
sudo chown -R mongodb directory
sudo chgrp -R mongodb directory

(ファイル名とディレクトリをそれぞれの名前に置き換えます)

次に、他の人がすでに述べたように、ロックを解除してデータベースを修復し、デーモンを再起動します。

sudo rm /var/lib/mongodb/mongod.lock   
sudo -u mongodb mongod -f /etc/mongodb.conf --repair 
sudo service mongodb start

どうしてこれに賛成投票がないのですか?これは、私が調べた6ダースのSOエントリの中で、私にとって有効な唯一のソリューションでした。ありがとうございます。
FRD

設定ファイルで開始し、修復を強制するコマンドがあるsudo -u mongodb mongod -f /etc/mongod.conf --repairUbuntuの14に
okoboko

5

まず、mongoサーバーを起動します

Users-MacBook-Pro:csv1 Admin$ mongod
all output going to: /usr/local/var/log/mongodb/mongo.log

次に、別のターミナルウィンドウを開いてシェルを開きます

Users-MacBook-Pro:csv1 Admin$ mongo

2

また、ルートパーティションにmongodを起動するための十分なスペースがあることを確認してください。

df -h /

mongodの起動時に、次のように表示されます。

Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
Mon Aug 12 17:02:59.159 [initandlisten] 
Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Mon Aug 12 17:02:59.159 [initandlisten] 
Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Mon Aug 12 17:02:59.159 dbexit: 
Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...


1

$ PATHと権限の問題の組み合わせである可能性があります。

以下の手順に従ってください。

$ PATH変数を更新して、MongoDB binファイルを指すようにします。私の場合、このフォルダにMongoDBをbrewでインストールします。

/usr/local/Cellar/mongodb/2.4.6/

$ PATH変数を更新するには、次のようにします。

$ sudo vi /etc/paths

次に、「i」を押してテキストをViに挿入し、MongoDBパスを「paths」ファイルの最後に追加して、ターミナルを再起動します。

/usr/local/Cellar/mongodb/2.4.6/bin

保存してViエディターを終了するには、「Esc:w q」を使用します。

エコーを使用してパス変数を表示します。

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin

Mongoのバージョンを確認してみてください。もしあなたがフォローしてもらえば、あなたは正しい軌道に乗っています!

$ mongo --version
MongoDB shell version: 2.4.6

次に、データベースディレクトリを作成する必要があります。MongoDBのドキュメントで提案されているデフォルトの「/ data / db」の場所を使用しました。また、Mongoがログを作成しようとしている間、権限の問題を回避するためにログディレクトリを作成しました。所有権を変更すれば、それでうまくいきます。

$ sudo mkdir /data/db
$ sudo mkdir /data/log
$ whoami
username
$ chown -R username /data

ここで、 'mongod'コマンドを初めて実行するときに提供されるMongoDBのデフォルトの設定ファイルを作成します。ここで、「mongod」が着信データ接続をリッスンするサービスを開始することも指摘しておきます。これは、「$ service mysqld start」を実行した場合と同様です。先に進み、構成ファイルを作成しましょう。非常に基本的な設定ファイルを作成したことを覚えておいてください。ただし、MongoDBを構成するために他の多くの変数を追加できます。MongoDBを使用するのは今回が初めてなので、MongoDBのドキュメントを読んだだけで十分です。

$ sudo vi /etc/mongodb.conf

以下を追加:

fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongod.log
logappend = true
journal = true

MongoDBサーバーのデフォルトポートは27017であることに注意してください。ステップ5で作成したdbpathとlogpathには独自のパスを使用してください。confファイルを閉じて保存することを忘れないでください。

これで、MongoDBサービスを開始する準備が整いました。ターミナルの2つのインスタンスを開きます。ターミナル1で、次のように入力します。

$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3516
all output going to: /data/log/mongod.log
child process started successfully, parent exiting

上記のメッセージが表示された場合は、Mongodサービスが正常に開始されていることを確認してください。

これに接続するには、ターミナル2で次のように入力します。

$mongo test
MongoDB shell version: 2.4.6
connecting to: test
Server has startup warnings:
Tue Sep 3 16:55:43.527 [initandlisten]
Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

警告を無視しますが、 'test'データベースに正常に接続されました!涼しい!

それで全部です。私が初めてMacにMongoDBのコピーをインストールしようとしたときに、このソリューションを適用しました。これも役立つかどうかを確認します。

詳細な投稿については、ここにアクセスできます-http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094

お役に立てば幸いです。

乾杯、チンメイ


このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
RadimKöhler2014

@RadimKöhler、頭を上げてくれてありがとう。正解です。これが誰かを助けることを願っています。乾杯。
Chinmay 2014

1

私は次の手順でubuntu 12.04でこの問題を解決しました:
1)sudo rm / var / log / mongodb
2)sudo rm / var / lib / mongodb
3)mongoを削除してから再度インストールしました
4)sudo service mongodb restart

そして、すべてが順調です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.