2016-12-25 3 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 Я бегу Узел 7.3.0 и Монго 3.2.9

Что я делаю неправильно? Как мне понять, что случилось?

+1

Проверьте IP-адрес вашей системы, используя команду ipconfig/ifconfig. И затем проверьте в ошибке nodejs console, если он использует тот же IP-адрес, чтобы установить соединение с mongodb. –

ответ

15

To connect к mongodb с mongoose, вы можете использовать:

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

Монгольский порт по умолчанию - 27017. Я думаю, у вас была небольшая опечатка –

5

Я столкнулся с этим вопросом сервала раз, а вот некоторые troubleshooting list

  1. делают уверенный database path является exist, путь по умолчанию в окнах в C:\data\db
  2. убедитесь mongo is running, чтобы запустить его пойти в C:\Program Files\MongoDB\Server\3.4\bin и выполните следующее:
    1. mongod.exe
    2. mongo.exe
  3. убедитесь, что ваш connection string is correct подобные mongdb://localhost/database-name
+2

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

1

Для меня проблема заключалась в том, что mongo не работал. Сначала я начал команду «mongod» в консоли. И позже на другой вкладке консоли я запускал «mongo». Теперь соединение выполнено успешно. Теперь запустите приложение, и ваша проблема должна быть решена.

1

Я использовал mongod в экземпляре PowerShell. Я не получал никакого результата в консоли powershell от mongod. Я нажал на экземпляр PowerShell, где был запущен mongod, нажмите Enter и и выполнение возобновлено. Я не уверен, что привело к остановке выполнения, но я могу немедленно подключиться к этому экземпляру монго.

1

При подключении к сети wifi mongodb://localhost/db_name работал должным образом.

Когда я не был подключен к какой-либо сети Wi-Fi, это не сработало. Вместо этого я использовал mongodb://127.0.0.1/db_name, и это сработало.

Возможно, проблема связана с ip-конфигурациями.

Смежные вопросы