当代码无法连接到 MongoD 实例时,我正在绞尽脑汁地试图让 pymongo 出错。似乎无论我做什么,“pymongo.errors.ConnectionFailure”都不起作用。我已经在本地主机和远程 mongoD 实例上尝试过此操作。当我从同一系统使用 mongoclient shell('mongo --host xx.xx.xx.xx')时,我得到正确的“连接被拒绝”。其他异常有效,但“ConnectionFailure”无效。请注意,当我在 mongod 实例主机上运行 tshark 嗅探器时,我在关闭的端口上看到正确的 TCP RST,表示连接被拒绝。 Mongod 没有监听,但是 pymongo ConnectionFailure 无法捕获失败的连接。
Python版本:2.7.10 pymongo 版本:3.2
我可能缺少什么,或者排除故障的步骤?在下面的示例中,mongod 未在本地主机上运行。我还在远程主机上停止它。在这两种情况下,都没有捕获异常错误,并且 pymongo 代码似乎认为它已连接。
代码:
import pymongo
try:
pymongo.MongoClient('localhost:27017')
except pymongo.errors.ConnectionFailure, e:
print "Could not connect: %s" % e
最佳答案
def dbConnect():
try:
conn = pymongo.MongoClient(<connection URL>)
try:
conn.server_info()
return "Connection Successfull"
except OperationFailure as e:
return e
except Exception as e:
return e
print (dbConnect())
由于 MongoClient 不会返回有助于连接状态的有值(value)的响应,因此这将工作得很好。
关于python - 蒙戈 3.2 : ConnectionFailure not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243707/