我正在尝试使用身份验证连接到 mongodb 数据库。我这样做的代码如下:
from pymongo import MongoClient
import urllib
client = MongoClient()
client = MongoClient('ip', port)
client.prod_db.authenticate('username', 'pass', source='source_database')
但是我在身份验证行中收到以下错误:
pymongo.errors.OperationFailure: Authentication failed.
我是否错误地执行了整个身份验证操作?
编辑:还尝试使用以下架构:
client = MongoClient('mongodb://user:pass@ip:port/')
我也遇到了同样的错误。
最佳答案
有很多原因可能导致身份验证
失败。
首先检查您是否允许您的 IP 地址用于 bindip。使用
0.0.0.0
允许所有客户端访问 MongoServer。也在
authenticate()
中将机制作为参数传递。
这样的东西对我有用:
client = MongoClient('127.0.0.1', 27017)
client.admin.authenticate('username', 'pass', mechanism = 'SCRAM-SHA-1', source='source_database')
db_name = client[db]
col_name = col_name
col = db_name[col_name]
关于python - mongodb python 中的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43181396/