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
и запустите следующее:
- убедитесь, что ваш
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,