Похоже, я больше не могу подключиться к своему бесплатному кластеру Mongo Atlas. Все работало, и у меня есть данные, которые были собраны, когда я просматриваю веб-сайт MongoDB, поэтому я понятия не имею, почему он перестал работать и больше не может подключаться. Весь мой сайт не загружается.
Это ошибка, которую я получал:
{ Error: querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:197:19)
errno: 'ENODATA',
code: 'ENODATA',
syscall: 'querySrv', Blog/app.js:54:14
hostname: '_mongodb._tcp.blog-cluster-0hb5z.mongodb.net' }
Я буквально перезагрузил свою машину, и все вернулось в норму. Я использую Windows, и когда я запустил его, он запустил диалоговое окно обновления, поэтому я подозреваю, что это как-то связано с этим.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У меня возникла эта проблема, когда я попытался получить доступ к атласу MongoDB в кафе. Раньше он работал идеально, но внезапно выдал мне эту точную ошибку. Я не уверен, почему, я не могу дать вам все детали, но что исправило это для меня, так это переход к моему кластеру и подключение к стандартная строка подключения. Я скопировал и вставил эту более длинную строку подключения, и после ввода пароля и его настройки у меня это сработало. Надеюсь, это помогло.
Можете ли вы привести пример строки, которая у вас была, и стандартной?
@chimpsarehungry Вы узнали формат «Стандартной строки подключения»?
@JuanRicardo нет, я просто ухожу из Старбакс, когда это происходит
По какой-то причине DNS-сервер не возвращал записи srv, изменение DNS-сервера на тот, который возвращает эти записи, устранило проблему. (Я использовал https://use.opendns.com/, чтобы исправить это)
Это должен быть принятый ответ. Я много путешествую по работе, и около 5-10% сетей WIFI сталкиваются с этой проблемой. Как только я изменил своего провайдера DNS на 8.8.8.8 (Google), я смог подключиться. Developers.google.com/speed/public-dns/docs/using Я полагаю, что вы могли бы использовать CloudFlare или других поставщиков DNS, но я не проверял.
Этот работает для меня. Обновил DNS-сервер моего Wi-Fi, и ошибка исчезла. Спасибо!
У меня была такая же проблема, когда я работал в Starbucks, пошел домой, и он сразу же подключился, попробуйте другое соединение Wi-Fi.
есть ли другой способ решить эту проблему?
Ага то же самое. В старбаксе так и не работает.
В Старбакс? Не работает? Используйте строку подключения Node.js 2.2.12. Ответ здесь: stackoverflow.com/a/55639024/2055760. Пользовательский интерфейс mongodb Atlas предоставляет для этого возможность. На шаге 1 выберите драйвер Node.js, затем измените версию с 3.0 на 2.2.12 or later, и они предоставят вам строку подключения, которая работает в Starbucks WiFi.
Starbucks по-прежнему не разрешает подключение :(
Это происходит со мной прямо сейчас в Старбаке. Я даже добавил IP Starbucks в белый список. Это заговор старбакс против разработчиков.
Это случилось и со мной в Starbucks. Одним из быстрых решений является подключение к VPN.
Для меня эта проблема возникала только в кофе Starbucks и была чем-то случайным, OpenDNS не работал у меня, ни Google DNS, ни какие-либо другие попытки, забавно, потому что дома отлично работает. Раньше я использовал строковый формат mongodb+srv для подключения внутри «uri», используя Mongoid и Ruby с файлом конфигурации mongoid.yml.
Чтобы решить эту проблему, обязательно следуйте конфигурации, описанной в этой ссылке https://docs.atlas.mongodb.com/драйвер-соединение/ (пример Mongoid).
production:
# Configure available database clients. (required)
clients:
# Defines the default client. (required)
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
database: 'myDatabaseName'
# Provides the hosts the default client can connect to. Must be an array
# of host:port pairs. (required)
hosts:
- mycluster0-shard-00-00.mongodb.net:27017
- mycluster0-shard-00-01.mongodb.net:27017
- mycluster0-shard-00-02.mongodb.net:27017
options:
# The name of the user for authentication.
user: kay
# The password of the user for authentication.
password: myRealPassword
# The database or source to authenticate the user against. If the database
# specified above is not admin, admin MUST be specified here.
auth_source: admin
# All Atlas servers use SSL. (default: false)
ssl: true
В некоторых случаях это происходит, когда ваш IP-адрес не занесен в белый список кластера MongoDB Atlas. Вот почему он работает с вашим IP-адресом дома, где вы изначально зарегистрировали свою учетную запись, но не работает с Wi-Fi в кафе или где-либо еще.
Поэтому убедитесь, что ваш текущий IP-адрес добавлен в ваш кластер MongoDB.
Я исправил эту проблему, обновив версию узла. Он выдавал ту же ошибку с версией узла 10.15.0 и был исправлен путем обновления до 15.3.0.