サーバー127.0.0.1:27017に接続できませんでした


160

次のエラーが発生します。

alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$ 

これは、mongodbを起動しようとするとどうなりますか。

* Starting database mongodb                                             [fail]

私はすでに試しました mongo --repair

chownとchmodをvar、lib、data / dbに作成し、 mongodb をログに記録しました。

他に何をすべきかわからない。助言がありますか?

mongodb.log:

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

編集:

私はロックを外し、mongodを修復し、このエラーが発生しました:

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

だから私はsudoでそれをしました:

alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

しかし、同じ問題がまだあります。


1
このリンクは 、mongoのdbパスを変更することにより、stackoverflow.com
questions / 9647561 /…に

8
sudo service mongod restart私のために働いた
Sudip Bhandari

回答:


31

ログは、古いロックファイルがあるため、mongodbが終了していることを示しています。

ジャーナリングを使用していない場合は、ロックファイルを削除し、修復を実行して、mongodbを再起動します。

ジャーナリングをオンにして実行している場合、または実行していた場合は、関連するMongo DBのドキュメントを参照してください。「ジャーナリングを使用している場合は、修復して整合性のある状態に回復するべきではない」と述べていることに注意してください。したがって、ジャーナリングを行っていた場合、修復によって状況が悪化した可能性があります。


25
修理が物を傷つけるのは悪いことです!
UpTheCreek 2013

1
ジャーナリングが有効な状況で、非常に頻繁に接続拒否エラーが発生した場合はどうすればよいですか?
Shashank

149
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo 

1
こんにちはNanhe Kumnarターミナルの最初のパスは何ですか。cd / usr / local / opt / mongodb /フォルダーに移動する必要がありますか、それとも次の問題に直面していますVijayvir-Singh:〜vijayvir $ sudo rm /var/lib/mongodb/mongod.lock rm:/ var / lib /mongodb/mongod.lock:そのようなファイルやディレクトリはありませんVijayvir-Singh:〜vijayvir $
Vijayvir Sing Pantlia '

@vvssは最初にファイルのパスを見つけます。これを使って。mongod.lockを見つけます
Kumar

9
バージョン/data/db/mongod.lock/var/lib/mongodb/mongod.lock
2.4.8

84

走るmongod前に走ったmongo

私はhttp://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/からmongodbのインストール手順に従いましたがmongo、mongoプロセスを実際に実行する前に実行したときにのみ同じエラーが発生しましたmongod。mongodbをインストールすると起動することもできると思いましたが、mongodbを必要とするmongod他のことを行う前に、手動で起動する必要があります。


10
これは私の問題でした。「Mongo Getting Started」ドキュメントでは、これが前もって明確にされていないことに驚いています。
jononomo 2013年

これは、ユーザーエクスペリエンスの観点からはまったく意味がありません。mongo.exeDBを起動するものである必要があります。
Moshe Karmel 2017年

58

これは、mongodプロセスがダウンしているためです。mongodプロセスを起動するには、次のコマンドを実行する必要があります。

~$ sudo service mongodb stop

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

~$ sudo mongod --repair --dbpath /var/lib/mongodb

~$ sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb

~$ sudo service mongodb start

これがお役に立てば幸いです。


2
問題が解決しました。ありがとうございました。一部の人々はまだそれらを実行しているかもしれないので、私はコマンドsudo service mongod stopsudo service mongodb stop最初のコマンドの前に追加します。
Georgi Georgiev 2016

1
mongoを再起動するのに役立ちました。しかし、私はもう古いデータベースにアクセスできません。ここで私を助けてくれませんか。
イーサン

13

試す

sudo service mongodb start

これで私の問題は解決しました。


違いは何であるsudo service mongod startsudo service mongodb start
geckob

よくわかりませんが、mongodbはサービスの名前、mongodはプログラムファイルの名前です。
潘博鵺

7

ファイルシステムの空き容量を確認し、少ない場合は増やしてください。これにより、mongoが起動しなくなる可能性もあります。/var/log/mongodb/mongodb.logファイルを確認します。

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

これは私に起こり、ファイル/etc/mongod.confにsmallfiles = trueを追加しました
Carlos

7

mongod前に実行してみてくださいmongo

sudo /usr/sbin/mongod 私のopensuseで

これは私の問題を解決しました、


6

したがって、最初に以下のコマンドでmongod.lockファイルを削除する必要があります

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

以下のコマンドを発行してmongoサービスを再起動します

sudo service mongod restart 

4

をチェックしnetstat -anp | grep 27017て、ポートが別のプロセスで使用されているかどうかを確認できます。


奇妙な、私はこれを得た:alex @ alex-K43U:〜$ netstat -anp | grep 27017(すべてのプロセスを識別できるわけではなく、所有されていないプロセス情報は表示されません。すべてを表示するにはrootである必要があります。)
alexchenco

2
これは、root以外のユーザーとして実行した場合の通常の結果です。netstatは、ユーザーが表示を許可されているプロセスのみを表示するためです。
エフレン2012年

sudo netstat -anp | grep 27017がその警告を無視する
Coronell

これは私のために働きます、ありがとう。指定されたコードunix 2 [] STREAM 31095-/tmp/mongodb-27017.sockを実行し、.sockファイルを削除したときにこれが表示され、すべて正常に動作します。
アベル、

4

Windowsでは、cmdを管理者として実行します。

  1. ディレクトリを作成:

    mkdir c:\ mongo \ data \ db

  2. インストールサービス:

    mongod.exe --install --logpath c:\ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c:\ mongo \ data \ db --directoryperdb

  3. MongoDBを起動します。

    ネットスタートMongoDB

4.Mongo Shellを起動します。

c:\mongo\bin\mongo.exe

このソリューションは私にとってうまくいきます



3

今後の参考のために、同様のエラーを回避するには、以下の手順に従ってください。

1. MondoDB https://www.mongodb.com/をダウンロードします。

2.ターミナルを開いて、ダウンロードフォルダーまたはmondodbダウンロードを保存したフォルダーにcdします(cdする前にmongodbフォルダーを抽出してください)

cd Downloads

3. mongodbをusr / localパスに移動します

sudo mv mongodb-osx-... /usr/local/mongodb

4.ローカルフォルダーにcd

cd /usr/local/mongodb

5.新しいディレクトリを作る

sudo mkdir -p /data/db

6.上記で作成した新しいディレクトリにcdします。

cd /data/db

7. mongo権限を与える

sudo chown YourMacUserName /data/db

8.次に、.bash_profileに移動/オープンします

これを行うには、次の手順に従います。

あなたの新しいターミナルで

cd 2 .pwd 3ls -l

端末のファイルリストに.bash_profileが表示されるかどうかを確認します

-bash_profileを作成しない場合

.bash_profileの作成:

あなたの端末で

touch .bash_profile

//すでに.bash_profileがある場合は、この手順をスキップします

手順8:

次に あなたのターミナルで:

open .bash_profile

そして、開いた状態で開くbashファイルに以下を追加します。

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

次に保存します(ファイルの保存またはコマンドS / CMD + S)

ステップ9:端末に戻る:

source .bash_profile

開いている二つの端子、あなたのための.Oneの意志デーモンモンドあなたのための他のモンゴ

ターミナル1: ターミナルタイプ:mongod

mongodb

出力: モンゴッドターミナル

ターミナル2:

mongo

出力: モンゴターミナル

また、ターミナルでmongodを起動するときに、次のタイプミスをしないようにしてください。 これは正しくありません。

mongo d

次のエラーが発生しました127.0.0.1 : 27017への接続に失敗しました(ポーリング後にソケットのエラーをチェックしています)、理由:接続が拒否されました

これは正しいです:

mongod

(mongoとd .. mondodの間にスペースを入れないでください。

最後に、端末でmongoを実行する前にmondod実行する必要があることを常に覚えておいてください


2

私はhttp://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/のドキュメントをフォローしました。

設定して再起動した後、実行sudo service mongod startして取得しました... [FAILED]

やっと、それmongodが始まっていたことがわかりました。私は思いますyum install自動起動に追加した。

mongodが実行されているかどうかを確認するには:service mongod status

これが誰かが同じ問題を抱えているのを助けることができることを願っています。


2

何度も試みた後、ようやく問題のトラブルシューティングを行うようになりました...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo

2

このエラーは、MongoDBのバインドIP設定が原因である可能性があります。MongoDBの設定ファイルは次の方法で確認できます

$ sudo vi /etc/mongodb.conf

私の場合、バインドIPは次のよ​​うにサーバーのイントラネットアドレスに設定されています。

bind_ip = 10.10.1.14 
#port = 27017

だから私はタイプにシェルに接続するためにmongoにIPパラメータを与えました:

$ mongo 10.10.1.14

設定を変更した場合は、mongodbサービスを再起動することを忘れないでください。


2

私はmongoバージョン3.2.1を使用して/data/db/おり、その後ロックファイルを削除する必要があり、実行するmongodと正常に起動しました。

>rm /data/db/mongod.lock
>mongod


1

Windows OSのデータディレクトリ内にあるmongod.lockを削除した後も、同じエラーメッセージが表示されていました。mongoコマンドをエラーなしで実行するには、-godpathを指定してmongodを実行する必要がありました。


1

回答は得られましたが、でネットワークエラーについて説明したいと思いMongoDBます。

MongoDBのネットワークエラー

安全な書き込みの懸念を設定することは、私たちが安全であることを確認するための完全な証明方法ではありません。w=1j=trueが設定されていると仮定します。書き込み確認がサーバーから受信されなかった場合はどうなりますか?まあ、それは起こりませんでしたが、起こった可能性があります。これが発生した可能性がある理由は、ネットワークエラーが発生しているためです-肯定的な応答を受信できない場合があります。したがって、選択した言語のドライバーを介してアプリケーションからリクエストを送信できます。mongod正常に完了し、TCPリセットが発生する可能性があります。ネットワークは、応答を受信しない方法でリセットされる可能性があります。したがって、エラーが発生する可能性があり、そのエラーでは、エラーが発生したと想定する場合があります。それは起こりませんでした、しかしそれは起こるかもしれません。

インサートの場合、それを防ぐことができます。ドライバーにを作成させて_id挿入を実行させると、挿入を複数回実行できるため、害を及ぼす可能性があるので、それは可能です。なぜなら、これを最初に行ってエラーが発生し、その挿入がネットワークエラーであるために完了したかどうかがわからない場合は、もう一度実行するだけです。そして、もう一度実行する場合は、tyrで正確に実行し_idます。最悪のシナリオは、挿入しようとすると重複キーエラーが発生することです。

ただし、更新は問題が発生する場所です。特に、アイテムに強力ではない更新、たとえば$inkコマンドが含まれていました。つまり、特定のフィールドをインクリメントするようにデータベースに指示しています。その場合は、ネットワークエラーが発生し、更新が発生したかどうかがわからない場合です。さて、更新が発生したことを確認できる値について十分に知っているかもしれませんが、これは問題ありません。ただし、データベースでそのフィールドの開始値がわからない場合、ネットワークエラーが発生した場合に、その値が発生したかどうかを知ることはできません。この種の問題は、細かいネットワークでは非常にまれです。

そして、どうしてもそれを回避する必要がある場合は、データベースからドキュメントの完全な値を読み取り、削除して再度挿入するか、単に挿入するだけで、すべての更新を挿入に切り替えます。新しいもの。

書き込みが成功した場合でも、アプリケーションがエラーを返す可能性がある理由:

  • アプリケーションとサーバーの間のネットワークTCP接続は、サーバーが書き込みを受信した後、応答を送信できるようになる前にリセットされました。
  • MongoDBサーバが書き込みを受信し、それに応えるの間に終了します。
  • 書き込みの時間とクライアントが書き込みへの応答を受信する時間の間にネットワークが失敗します。

1

これは私にとってはうまくいくmongodbの使用を停止するには:

use admin
db.shutdownServer()

そして再起動するには:

sudo service mongod restart

0

環境変数のPATHにビンを追加すると役立ちました。

GOTOインストールパス、.. / binをWindowsの環境変数のPATH変数にコピー


0

タイプの窓+ R と次のように入力します

services.msc

MongoDBを起動する

ここで、mongo.exeが存在するそれぞれのパスのcmdに「mongo」と入力すると、動作が開始されます。


0

1. dドライブD:/ data / dbに新しいフォルダーを作成する

2. D:/ data / dbでターミナルを開く

3. mongodと入力して入力します。

4. mongoと入力して入力します。

そして、あなたのmongodbは............






0

エラー:サーバー127.0.0.1:27017に接続できませんでした

これは、WINDOWSユーザーがここにコードを入力するためのソリューションです。1.ディレクトリを作成します。

mkdir c:\mongo\data\db
  1. サービスのインストール:まず、cdを使用してMongoDBのプログラムファイルのbinディレクトリに移動します。

mongod.exe --install --logpath

  1. MongoDBを起動します。

    net start MongoDB

4.Mongo Shellを起動します。

`c:\mongo\bin\mongo.exe` or

ビンまで行き、入る mongo

注:管理者モードでターミナルを開きます


0

Ubuntu 18.04LTS:以前のバージョンを完全にアンインストールして4.2.6をインストールすると問題が発生します

グーグルで何時間も過ごした後、別の問題を解決しました

MongoDBの起動失敗-*** fassert()の失敗後に中止

問題がサーバー接続できなかったので、私は絶望的でした

最後に、私はオペレーティングシステムを再起動することを決め、何を推測しました... BINGO

sudo mongo // works like a charm

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