簡體   English   中英

[錯誤:無法連接到[localhost:27017]]從NodeJS到mongodb

[英][Error: failed to connect to [localhost:27017]] from NodeJS to mongodb

我在使用以下示例代碼從NodeJS連接到MongoDB時遇到問題。 我嘗試使用或不使用sudo運行“mongod”,但nodejs代碼仍然無法連接。 我能夠使用“mongo”成功連接到數據庫。

運行於:MAC OS 10.6.8

   var mongoClient = require('mongodb').MongoClient;
   mongoClient.connect("mongodb://localhost:27017/test", function(error, db) {
        if(!error){
             console.log("We are connected");
        }
        else
           console.dir(error);
    });

在代碼上面運行以下錯誤:[錯誤:無法連接到[localhost:27017]]

還嘗試了mongoose但類似的錯誤:

    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/test');
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function callback () {
          console.log("DB connected");
    // yay!
    });

輸出:連接錯誤:[錯誤:無法連接到[localhost:27017]]

這是mongod的日志

mongod --help for help and startup options
2014-07-11T23:33:47.843-0700 kern.sched unavailable
2014-07-11T23:33:47.849-0700 [initandlisten] MongoDB starting : pid=29942 port=27017 dbpath=/data/db 64-bit host=usc8bcc8a0d0b1
2014-07-11T23:33:47.849-0700 [initandlisten]
2014-07-11T23:33:47.849-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2014-07-11T23:33:47.849-0700 [initandlisten] db version v2.6.3
2014-07-11T23:33:47.849-0700 [initandlisten] git version: nogitversion
2014-07-11T23:33:47.849-0700 [initandlisten] build info: Darwin usc8bcc8a0d0b1 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
2014-07-11T23:33:47.849-0700 [initandlisten] allocator: system
2014-07-11T23:33:47.849-0700 [initandlisten] options: {}
2014-07-11T23:33:47.850-0700 [initandlisten] journal dir=/data/db/journal
2014-07-11T23:33:47.850-0700 [initandlisten] recover : no journal files present, no recovery needed
2014-07-11T23:33:47.901-0700 [initandlisten] waiting for connections on port 27017
2014-07-11T23:34:47.901-0700 [clientcursormon] mem (MB) res:48 virt:2810
2014-07-11T23:34:47.901-0700 [clientcursormon]  mapped (incl journal view):320
2014-07-11T23:34:47.901-0700 [clientcursormon]  connections:0

沒關系,我能夠通過使用127.0.0.1而不是localhost來解決問題,不知道為什么我必須使用ip地址。 我的tomcat,apache,redis甚至節點服務器都使用localhost而不是mongodb。 是否有配置我需要更改以使其使用本地主機?

嘗試在/private/etc/hosts文件中添加127.0.0.1 localhost

是的,我也遇到了這個錯誤,我的主機如下: 127.0.0.1 xxxxxx(the ip of my computer)當我在快遞項目中運行npm start時,它出現了類似的錯誤。 在我嘗試將127.0.0.1的映射更改為localhost ,它沒有錯誤。

第一次,我犯了明顯的錯誤,即mongod (mongo Server)甚至沒有運行。

第二次,我在Windows上運行了Server( mongod )和Client( mongo ); 在單獨的命令提示中(當然mongo首先運行)。 mongod和/或它的命令提示符被“掛斷”(即最后一行只說了這個,盡管嘗試連接,最后一行仍然像這樣:)

2017-06-20T12:31:02.937-0600 I NETWORK  [thread1] waiting for connections on port 27017

我單擊命令提示符按空格鍵“踢它”,命令提示符打印行如下:

2017-06-20T12:31:48.517-0600 I NETWORK  [thread1] connection accepted from 127.0.0.1:50260 #1 (1 connection now open)

哪個有效!

Github上有人找到了解決方案:而不是寫:

Mongoose.connect(config.database.url);

寫:

Mongoose.connect(config.database.url, {
  keepAlive: true,
  reconnectTries: Number.MAX_VALUE,
  useMongoClient: true
});

(來源https://github.com/Automattic/mongoose/issues/5399

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM