web-dev-qa-db-ja.com

MongoNetworkError:最初の接続時にサーバー[localhost:27017]への接続に失敗しました[MongoNetworkError:connect ECONNREFUSED 127.0.0.1:27017]

私はnodeJSの初心者で、youtubeの予告編に従って学習を始めました。mongodbの接続機能を追加するまではすべて順調です。

mongo.connect("mongodb://localhost:27017/mydb")

cmd(node start-app)でコードを実行すると、次のエラーが発生します。

MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]

誰かが私が逃したステップを説明できますか?私のコード:

var express = require("express");
var MongoClient = require('mongodb');
var url = "mongodb://localhost:27017/mydb";
var webService = require("./webService");
var server = express();

MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log("Database created!");
    db.close();
});

server.use(express.urlencoded({ extended: true }));

server.set('views', __dirname);

server.get('/', function (request, response) {
    response.sendFile(__dirname + '/MainPage.html');
});

server.get('/Sign', function (request, response) {
    response.render(__dirname + '/Sign.ejs');
});

server.post("/signUp", webService.signUp);

server.post("/createUser", webService.createUser);

server.listen(5500);
22
Karam Haj

最初にシステムにMongoDBデータベースサーバーをインストールして起動する必要があります。

以下のリンクを使用してMongoDBをインストールします

https://docs.mongodb.com/manual/installation/

16
Vishnu

Googleがスタックオーバーフローで思いついたすべてのソリューションを試した後、私は私の特定の問題が何であるかを見つけました。 hostsファイルを編集していたかなり前に、仮想ボックスからローカルホストにアクセスできるようにしました。

このエントリを削除すると、上記のソリューションで指定されたリンクからmongoDBが正しくインストールされ、正しいプロミス処理コードが含まれるようになりました。

mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
    console.log("Not Connected to Database ERROR! ", err);
});
8
Cory M

それらの多くはこれを追加しません。特にAWS EC2インスタンスでは、同じ問題があり、別の解決策を試しました。解決策:コード内のデータベースURLの1つにこのパラメーター「authSource」がありませんでした。

mongodb://myUserName:MyPassword@ElasticIP:27017/databaseName?authSource=admin
6
NadZ

私は同じ問題に直面しましたが、多くのRNDの後です。問題が発生したので、端末でこのコマンドを実行してください。

Sudo service mongod start

上記の@CoryMの答えの背後にあるロジックに従います。

Googleがスタックオーバーフローで思いついたすべてのソリューションを試した後、私は私の特定の問題が何であるかを見つけました。私はずっと前にホストファイルを編集して、バーチャルボックスからローカルホストにアクセスできるようにしました。

このエントリを削除すると解決しました...

2か月前にPython Machine Learningセットアップ用にホストファイルも編集しました。まだ必要なので削除するのではなく、localhostの代わりに127.0.0.1を使用しました。

mongoose.connect('mongodb://127.0.0.1/testdb')
3
KeitelDOG

これは私に起こりました、そして、私はそれが不完全なインターネット接続のためであるとわかりました。セキュリティ上の理由でさまざまなWebサイトをブロックしている場所でパブリックWiFiを使用すると、Mongoは接続を拒否します。ただし、自分のモバイルデータを使用する場合は、データベースに接続できます。

2
Pritt Balagopal

このコマンドを実行すると、エラーの詳細を確認できます

Sudo service mongod status

エラーがこのようなものである場合

  • ソケットファイル/tmp/mongodb-27017.sockの不明なエラーのリンク解除に失敗しました
  • src/mongo/transport/transport_layer_asio.cpp 670での致命的なアサーション40486

これを実行するだけで問題が解決します

rm /tmp/mongodb-27017.sock

1
Aleem

mongo dbのインストールのようにすべてがセットアップされ、mongooseのようなクライアントがインストールされている場合は、基本フォルダーのターミナルでmongodを実行します。コマンドを実行した後、作業中のプロジェクトファイルを実行すると、エラーは表示されません。

1
Udit Jain
mongoose.connect('mongodb://localhost:27017/').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});

Localhost Mongoose Databaseのみに接続し、独自のコレクションを作成する方が良いでしょう。ポート番号を記載することを忘れないでください。 (デフォルト:27017)

最適なビューを表示するには、MongoDB UI用のMongoose-compassをダウンロードしてください。

0

地元のスターバックスで働いているときにこの問題が発生しました。MongoAtlasを使用してデータベースを最初にセットアップしたときのことを思い出しました。データベースにアクセスできるようにIPアドレスを設定しました。複数のスレッドを調べた後、AtlasでIPアドレスを変更すると、問題はなくなりました。これが誰かを助けることを願っています。

0
Pedro Nunez

最初にコマンドラインmkdir C:\ data\dbでフォルダーを作成します(これはデータベース用です)。次に、コマンドmongod --port 27018を1つのコマンドプロンプト(管理モード)で実行します。

0
Mrutyunjaya Kar

1)mongodbをインストールしていない場合は、インストールします。

2)新しいターミナルを開き、「mongo」と入力します。これにより、localhostで実行されているMongoDBインスタンスにデフォルトポート27017で接続されます。

0
obayral

私の場合は少し違っていました。システムを再起動した後、ローカル開発を行っている間、MongoでIPアドレスをホワイトリストに登録していませんでした。

Select Network Acess > Add IP Address > Add your current IP Address
0
jarora