尝试连接到CosmosDB数据库时获取pymongo.errors.ServerSelectionTimeoutError

时间:2020-03-08 03:54:33

标签: python azure azure-cosmosdb

尝试从本地计算机连接到CosmosDB数据库时,我遇到了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:连接已关闭

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

2 个答案:

答案 0 :(得分:1)

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

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}"

答案 1 :(得分:1)

好,知道了。我需要将我的IP地址添加到防火墙以允许它通过。然后我收到一个自动重新连接错误,需要向连接字符串添加retrywrites = false。