2016-12-25 147 views
12

我收到以下錯誤:MongoDB的:無法連接到服務器上的第一個連接

Warning { MongoError: failed to connect to server [mongodb:27017] on first connect 
    at Pool.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/topologies/server.js:325:35) 
    at emitOne (events.js:96:13) 
    at Pool.emit (events.js:188:7) 
    at Connection.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/pool.js:270:12) 
    at Connection.g (events.js:292:16) 
    at emitTwo (events.js:106:13) 
    at Connection.emit (events.js:191:7) 
    at Socket.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/connection.js:173:49) 
    at Socket.g (events.js:292:16) 
    at emitOne (events.js:96:13) 
    at Socket.emit (events.js:188:7) 
    at connectErrorNT (net.js:1025:8) 
    at _combinedTickCallback (internal/process/next_tick.js:74:11) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 
    name: 'MongoError', 
    message: 'failed to connect to server [mongodb:27017] on first connect' } 

即使我得到這個在我運行蒙戈終端窗口:

2016-12-25T03:45:23.715+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:58868 #8 (8 connections now open) 

它還挺看起來就像是有聯繫..

我都試過

$ mongod 

$ brew services start mongo 

這是我test_helper.js

const mongoose = require('mongoose'); 
mongoose.connect('mongodb:localhost/users_test'); 
mongoose.connection 
.once('open',() => console.log('Good to go!')) 
.on('error', (error) => { 
console.warn('Warning', error); 
}); 

我沒有專門做分貝「users_test」因爲我的印象是,貓鼬或蒙戈或兩者將做到這一點的飛。

我試過「localhost」和「127.0.0.1」。 我在OSX 10.11.5 我正在運行Node 7.3.0和Mongo 3.2.9

我在做什麼錯?我如何弄清楚什麼是錯的?

+1

使用命令ipconfig/ifconfig檢查系統的IP地址。然後檢查nodejs控制檯是否錯誤,如果它使用相同的IP地址與mongodb建立連接。 –

回答

15

To connectmongodbmongoose,你可以使用:

mongoose.connect('mongodb://localhost/users_test'); 

mongoose.connect('localhost/users_test'); 

mongoose.connect('localhost','users_test'); 

但不是mongoose.connect('mongodb:localhost/users_test');,它不符合正確的主機名(mongodb代替localhost

1

改變

mongodb://localhost:27071/local 

localhost/local 

和錯誤消失

+3

Mongodb的默認端口是27017.我想你有一個小的錯字 –

5

我就遇到了這個問題藪倍,這裏是一些troubleshooting list

  1. 化妝肯定database pathexist,在C:\data\db
  2. 確保mongo is running,運行它去C:\Program Files\MongoDB\Server\3.4\bin並運行下列Windows中的默認路徑:
    1. mongod.exe
    2. mongo.exe
  3. 確保您connection string is correct like mongdb://localhost/database-name
+2

mongodb:// localhost/database-name not mongdb:// localhost/database-name –

1

對我來說,問題是mongo沒有運行。所以首先我在控制檯中啓動了「mongod」命令。後來在另一個控制檯標籤中我運行了「mongo」。現在連接成功了。 現在運行你的應用程序,你的問題應該得到解決。

1

我在PowerShell實例中運行mongod。我沒有從mongod的powershell控制檯中獲得任何輸出。我點擊了mongod正在運行的PowerShell實例,點擊進入,然後繼續執行。我不確定是什麼導致了執行停止,但我現在可以立即連接到這個mongo的實例。

1

雖然連接到wifi網絡,mongodb://localhost/db_name按預期工作。

當我沒有連接到任何WiFi網絡,這是行不通的。相反,我用, mongodb://127.0.0.1/db_name它的工作。

可能是一個與IP配置有關的問題。

相關問題