错误:查询服务器tcp.dbname.fzofb.mongodb.net

mm5n2pyu  于 2022-11-03  发布在  Go
关注(0)|答案(9)|浏览(144)

我正在学习Node.js,并且刚刚开始使用MongoDB。
我正在与我创建的MongoDB集群建立连接

const dbURI = 'mongodb+srv://testuser:test1234@nodelearning.fzofb.mongodb.net/mydb?retryWrites=true&w=majority';
mongoose.connect(dbURI, { useNewUrlParser: true, useUnifiedTopology: true })
    .then((result) => console.log('connected to db'))
    .catch((err) => console.log(err));

当我运行它nodemon app时,我得到这个错误:
错误代码:查询服务器ENOTFOUND _mongodb._tcp.mydb.fzofb.mongodb.net,位于查询请求 Package 。onresolve [作为oncomplete](节点:dns:206:19){错误编号:未定义,代码:'未找到',系统调用:'查询服务',
主机名:'_mongodb._tcp.mydb.fzofb.mongodb.net' }

ghhkc1vu

ghhkc1vu1#

另外,如果你的mongodb Atlas集群在一段时间后处于非活动状态,它可能会暂停,然后当你运行服务器时,它会返回你所遇到的错误。
所以另一个赌注是登录到您的Atlas帐户,并确认它是否还没有被暂停。嗯,我的这个选项应该只考虑在尝试了上述选项。

mhd8tkvw

mhd8tkvw2#

该错误表示代码中没有错误。这就给您留下了三种可能的情况:
1.确保您的计算机上有MongoDB installed
1.请确保您连接到非公共WiFi。
1.确保您已经允许MongoDB的IP网络访问,如下图所示:

在我的例子中,我在一个共同工作的空间连接到公共WiFi。我改变了我的连接到我的个人热点,它工作了。

disho6za

disho6za3#

需要将连接字符串密码中特殊字符转换为百分比编码

我在mongodb-compass上也遇到了同样的问题。对我来说,这是不正确的连接字符串格式。所以在我的情况下,它需要将我的密码中的@符号转换为%40(百分比编码)。
你可以在这里和这里读到更多关于这个的信息。

tpxzln5u

tpxzln5u4#

尝试禁用VPN(如果已启用)。它对我有帮助。

gajydyqb

gajydyqb5#

我遇到了同样的问题。我使用的是最新的srv字符串。我不知道这是否会帮助你。但使用旧的

mongodb://<username>:<password>@cluster0-shard-00-00.2pznz.mongodb.net:27017,cluster0-shard-00-01.2pznz.mongodb.net:27017,cluster0-shard-00-02.2pznz.mongodb.net:27017/myFirstDatabase?ssl=true&replicaSet=atlas-s5orlv-shard-0&authSource=admin&retryWrites=true&w=majority```
n3schb8v

n3schb8v6#

如果您试图访问数据库的IP地址不在IP访问列表中,就会发生此错误。请转到MongoDB登录,在安全性下单击网络访问,然后检查您的IP是否已添加到其中。

yzuktlbb

yzuktlbb7#

在我的例子中,当我登录到我的MongoDB atlas帐户时,问题得到了解决。

biswetbf

biswetbf8#

在我的例子中,我重用了另一个项目中的字符串连接,我从MongoDB站点复制了我原来的字符串连接,并且运行良好。

qij5mzcb

qij5mzcb9#

修复::以前我的集群密码是“chaudhary@786”,其中包含特殊字符“@",由于这连接编译器的指南针字符串变得混乱,因此在下一轮我改变了我的密码“gghjkl 98”,即没有任何特殊字符。
解决方案:群集的密码不应包含\反斜杠或@等字符或任何其他字符

相关问题