Pymongo 无法连接到数据库:pymongo.errors.ServerSelectionTimeoutError: connection closed
Posted
技术标签:
【中文标题】Pymongo 无法连接到数据库:pymongo.errors.ServerSelectionTimeoutError: connection closed【英文标题】:Pymongo not able to connect to the database: pymongo.errors.ServerSelectionTimeoutError: connection closed 【发布时间】:2019-03-08 04:11:18 【问题描述】:我想通过 pymongo 读取集合,但出现以下错误:
Traceback(最近一次调用最后一次):文件 “C:/Users/GSingh/PycharmProjects/MC/quizQuestionAnswers.py”,第 21 行, 在 pprint.pprint(posts.find_one()) 文件 "C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\collection.py", 第 1262 行,在 find_one 中 对于 cursor.limit(-1) 的结果:文件“C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\cursor.py”, 第 1189 行,在下一个 如果 len(self.__data) 或 self._refresh(): 文件 "C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\cursor.py", 第 1087 行,在 _refresh 中 self.__session = self.__collection.database.client._ensure_session() 文件 "C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\mongo_client.py", 第 1558 行,在 _ensure_session 中 return self.__start_session(True, causal_consistency=False) 文件 "C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\mongo_client.py", 第 1511 行,在 __start_session server_session = self._get_server_session() 文件“C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\mongo_client.py”, 第 1544 行,在 _get_server_session 中 返回 self._topology.get_server_session() 文件“C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\topology.py”, 第 427 行,在 get_server_session 中 无)文件“C:\Users\GSingh\AppData\Local\Continuum\anaconda2\lib\site-packages\pymongo\topology.py”, 第 199 行,在 _select_servers_loop self._error_message(selector)) pymongo.errors.ServerSelectionTimeoutError: 连接关闭
以下是我正在运行的代码:
from pymongo import MongoClient
import pprint
username = 'username'
password = 'Password'
uri = "mongodb://"+username+":"+password+"@mc-*****.mongodb.net:27017/?authMechanism=SCRAM-SHA-256"
client = MongoClient(uri)
database = client["sws-quiz"]
collection = database["attempts"]
try:
posts = database.posts
pprint.pprint(posts.find_one())
finally:
client.close()
【问题讨论】:
【参考方案1】:那是因为我没有做 ssl=True
【讨论】:
以上是关于Pymongo 无法连接到数据库:pymongo.errors.ServerSelectionTimeoutError: connection closed的主要内容,如果未能解决你的问题,请参考以下文章
使用 PyMongo 和 x509 SSL 证书连接到 MongoDB 数据库时出现 ServerSelectionTimeoutError
使用 TLS 将 pymongo 客户端连接到 mongodb 服务器
通过 httpd 上的 Flask-PyMongo 连接到 MongoHQ URI 时出现 ConnectionFailure