首页 > 解决方案 > 尝试连接到 CosmosDB 数据库时出现 pymongo.errors.ServerSelectionTimeoutError

问题描述

我在尝试从本地计算机连接到 CosmosDB 数据库时收到 Getting pymongo.errors.ServerSelectionTimeoutError。

uri = "uri given by the CosmosDB console"
client = pymongo.MongoClient(uri)
db = client.test
collection = db.test
collection.insert_one({"field1": "foo", "field2": "bar"})

在它抛出的最后一条语句中:pymongo.errors.ServerSelectionTimeoutError: connection closed

我也尝试添加一些博客文章推荐的 ssl_cert_reqs=CERT_NONE 参数,但它仍然抛出相同的错误。我正在使用 pymongo 3.10.1

标签: pythonazureazure-cosmosdb

解决方案


我之前遇到过同样的问题,您可以?ssl=true&ssl_cert_reqs=CERT_NONE在传递给 MongoClient 的字符串中的数据库名称之后添加,看起来像,

db_name = os.getenv("MONGO_DB")
host = os.getenv("MONGO_HOST")
port = 10255
username = os.getenv("MONGO_USERNAME")
password = os.getenv("MONGO_PASSWORD")
args = "ssl=true&retrywrites=false&ssl_cert_reqs=CERT_NONE"

connection_uri = f"mongodb://{username}:{password}@{host}:{port}/{db_name}?{args}"

推荐阅读