use*_*708 3 python pymongo pymongo-3.x
我是第一次尝试 pymongo,但一直收到 ServerSelectionTimeoutError。使用 mongo 命令行登录时,我运行如下命令
$ mongo-3.0 --ssl test.net:27080/db_qa --sslAllowInvalidCertificates -u content -p
MongoDB shell version: 3.0.12
Enter password:
Run Code Online (Sandbox Code Playgroud)
我可以正常连接,但是使用 pymongo 时出现错误
pymongo.errors.ServerSelectionTimeoutError: test.net:27080: [Errno 60] Operation timed out
Run Code Online (Sandbox Code Playgroud)
我的代码如下
from pymongo import MongoClient
client = MongoClient('mongodb://content:<password>@test.net:27080/db_qa')
client.server_info()
Run Code Online (Sandbox Code Playgroud)
您的连接字符串缺少 shell 命令行提供的ssl选项,即允许无效证书的选项。
您可以?ssl=true&ssl_cert_reqs=CERT_NONE在要传递给的字符串中的数据库名称之后添加,MongoClient或者在MongoClient页面上查看证书处理的其他选项(滚动到“SSL 配置”部分)