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' }

Даже если я получаю это в окне терминала, где я запускаю Mongo:

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);
 });

Я специально не сделал db "users_test", поскольку у меня создается впечатление, что мангуст или монго или оба будут делать это на лету.

Я пробовал как "localhost", так и "127.0.0.1". Я на OSX 10.11.5 Я запускаю Node 7.3.0 и Mongo 3.2.9

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

Ответ 1

Чтобы подключиться к 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)

Ответ 2

Я столкнулся с этим вопросом serval, и вот несколько troubleshooting list

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

Ответ 3

Я получал ту же ошибку, когда пытался подключить mlab db, потому что в моей сети организации есть некоторые ограничения, я переключился на мобильную точку доступа, и она работала.

Ответ 4

  Добавление еще одного ответа в качестве решения в разных контекстах:

Решение проблемы MongoDb Atlas

Я подключился к MongoDB Atlas и занес в белый список IP-адрес компьютера, выполнив следующие действия:

  • Перейдите на вкладку безопасности

the security tab

  • Перейдите на вкладку доступа к сети на вкладке безопасности

network access tab under security tab

  • Перейдите на вкладку белого списка IP-адресов

.IP whitelist tab


Ответ 5

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

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

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

Ответ 6

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

Ответ 7

Решение локальной проблемы MongoDb

Решите это, выполнив следующие шаги:

Измененный

mongodb://localhost:27017/local

в

localhost/local

И ошибка ушла

Ответ 8

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

Ответ 9

Я пытался подключить mlab к Wi-Fi-соединению моей компании, и он выдавал эту ошибку. Но когда я переключился на персональную сеть, это сработало и подключилось.

Ответ 10

Если экземпляр mongo построен на cloud.mongodb.com, эта ошибка появляется, когда экземпляр может работать только с известных IP-адресов, заданных в пуле белых списков IP-адресов при настройке экземпляра.

Таким образом, на панели мониторинга Монго необходимо установить текущий IP-адрес в белый список IP-адресов из меню доступа к сети слева.

BR,