首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pymongo:不存在任何DNS查询名

Pymongo:不存在任何DNS查询名
EN

Stack Overflow用户
提问于 2022-06-27 19:51:01
回答 1查看 349关注 0票数 0

我正在做一个由同事交给我的项目。在提取存储库之后,我无法运行,得到一个错误

代码语言:javascript
复制
Exception has occurred: ConfigurationError
None of DNS query names exist: _mongodb._tcp.stage.xxxx.mongodb.net., _mongodb._tcp.stage.xxxx.mongodb.net.xxxx.com., _mongodb._tcp.stage.xxxx.mongodb.net.hsd1.tx.comcast.net., _mongodb._tcp.stage.xxxx.mongodb.net.tx.comcast.net., _mongodb._tcp.stage.xxxx.mongodb.net.comcast.net.

奇怪的是,这种回购对我的同事来说非常好。他有相同的python版本,同样的依赖/等等,没有问题。下面是requirements.txt

代码语言:javascript
复制
fastapi==0.65.2 
uvicorn==0.11.7
gunicorn==20.0.4
elastic-apm==5.8.0
pymongo[srv]==3.12.0
pydantic==1.7.4
singleton-decorator==1.0.0
requests==2.27.1
requests-oauthlib==1.3.1
oauthlib==3.2.0
python-multipart==0.0.5
cachetools==5.0.0
pytz==2022.1
python-dotenv==0.14.0

我正在使用Python3.8.6,也尝试使用3.9.10,但问题相同。

这正是我要跑腿的地方。

代码语言:javascript
复制
@singleton
class MongoDB:
    """MongoDB Class"""

       def __init__(self, config: MongoDbConfig):
            """Initial MongoDB Connection on collection level"""
            _uri = "mongodb+srv://{username}:{password}@{host}/{db}?authSource=admin&replicaSet={replica_set}&readPreference=primary&connectTimeoutMS={timeout}&authMechanism=SCRAM-SHA-1".format(
                username=config.username,
                password=config.password,
                host=config.host,
                db=config.db,
                replica_set=config.replicate_set,
                timeout=1000,
                maxPoolSize=config.max_pool,
            )
    
            self.client = MongoClient(_uri)

当我安装dnspython==2.2.1时,我的错误减少到

代码语言:javascript
复制
The DNS query name does not exist: _mongodb._tcp.stage.XXXX.mongodb.net.

我的env变量和系统变量与我的同事完全一致。我们现在都在偏远地区工作。我尝试过google修复,但它似乎不起作用。关于我该如何解决这个问题的任何建议/建议。我完全迷路了。

EN

回答 1

Stack Overflow用户

发布于 2022-06-28 00:41:05

在运行应用程序的服务器上,您可以在文件/etc/hosts中为应该存在mongodb的主机添加条目,例如:

代码语言:javascript
复制
<IP_of_mongodb_server> _mongodb._tcp.stage.XXXX.mongodb.net

这仅仅是一个解决方法,它将显式地将_mongodb._tcp.stage.XXXX.mongodb.net指向您在文件中设置的IP .

最好的选择是在mngodb.net网站上设置一个公共IP作为DNS条目。信息可以在MongoDB社区找到。示例:https://www.mongodb.com/community/forums/t/mongo-connection-test-dns-name-does-not-exist/86048https://www.mongodb.com/community/forums/t/dnshostnotfound-failed-to-look-up-service/109605

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72777608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档