我可以使用地址www.example.com本地连接到我的mongodb服务器0.0.0.0/0。但是,当我将代码部署到云时,我得到了部署到谷歌云功能的错误。
使用Python 3.7(测试版)实现Google云功能Atlas Mongo DB Python库:-pymongo -dnspython函数Error: function crashed. Details: All nameservers failed to answer the query _mongodb._tcp.**-***.gcp.mongodb.net. IN SRV: Server ***.***.***.*** UDP port 53 answered SERVFAIL
Traceback (most recent call last): File "/env/local/lib/python3.7/site-packages/pymongo/uri_parser.py", line 287, in _get_dns_srv_hosts results = resolver.query('_mongodb._tcp.' + hostname, 'SRV') File "/env/local/lib/python3.7/site-packages/dns/resolver.py", line 1132, in query raise_on_no_answer, source_port) File "/env/local/lib/python3.7/site-packages/dns/resolver.py", line 947, in query raise NoNameservers(request=request, errors=errors) dns.resolver.NoNameservers: All nameservers failed to answer the query _mongodb._tcp.**mymongodb**-r091o.gcp.mongodb.net. IN SRV: Server ***.***.***.*** UDP port 53
3条答案
按热度按时间omqzjyyz1#
最后在困了2天后,goblok banget semaleman
仅更改连接
SRV连接字符串(3.6+驱动程序)
至
标准连接字符串(3.4+驱动程序)
mongodb://<USERNAME>:<PASSWORD>@<DATABASE>-shard-00-00-r091o.gcp.mongodb.net:27017,<COLLECTION>-shard-00-01-r091o.gcp.mongodb.net:27017,<COLLECTION>-shard-00-02-r091o.gcp.mongodb.net:27017/test?ssl=true&replicaSet=<COLLECTION>-shard-0&authSource=admin&retryWrites=true
也可以在atlasmongodb中查看连接字符串。
我不知道为什么不能连接到srv连接字符串在谷歌云功能,也许现在不支持,或只是配置错误。
2ledvvac2#
这可能会帮助一些人,当我试图用
mongodb+srv://
语法连接到MongoDB时,我在Windows上与这个错误作斗争,如果我通过WSL或在Linux机器上尝试,它工作得很好。从https://forum.omz-software.com/topic/6751/pymongo-errors-configurationerror-resolver-configuration-could-not-be-read-or-specified-no-nameservers/4开始
zujrkrfu3#
大多数情况下,当您的网络没有配置www.example.com DNS地址时,会出现此错误8.8.8.8。
在命令提示符下键入以下命令进行验证
ipconfig /all
检查您的IP配置,在配置中您应该看到以下内容
如果没有,则应将网络配置为使用
8.8.8.8
作为主DNS,使用8.8.4.4
作为辅助DNS。或
您可能正在使用VPN或专用DNS。在这种情况下,请与您的服务提供商联系以获得帮助。