我是Python新手,正在尝试连接到MongoDB ReplicaSet,但是当我尝试连接到数据库时,在“for x in mydoc”语句中出现以下错误:
File "C:\Users\Nahuel Gabioud\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymongo\helpers.py", line 159, in _check_command_response raise OperationFailure(msg % errmsg, code, response) pymongo.errors.OperationFailure: Authentication failed.
代码如下
import pymongo
import urllib
password = urllib.parse.quote_plus("moica2$PerformanceGGR!!")
try:
myclient = pymongo.MongoClient("mongodb://performance:"+password+"@db-mdb-30.serverurl:27017,db-mdb-31.serverurl:27017,db-mdb-32.serverurl:27017/?authMechanism=SCRAM-SHA-256&replicaSet=rs30&readPreference=primaryPreferred")
print("Connected successfully!!!")
except:
print("Could not connect to MongoDB")
mydb = myclient["moica2"]
mycol = mydb["moicaTickets"]
myquery = {"nroTkt": "190701PD0100"}
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
input()
出于安全考虑,我没有发布真正的url,而是使用了“serverurl”。你知道吗
如您所见,我使用的是连接字符串,如https://docs.mongodb.com/manual/reference/connection-string/#standard-connection-string-format
在try和except中不捕获异常。错误出现在“for x in mydoc”中。你知道吗
身份验证失败将导致您认为ID/密码不正确。但是,如果您位于公司防火墙后面,则可能是连接问题和错误消息。你知道吗
我建议下载/安装Compass,看看它是否与相同的连接字符串/凭据连接。你知道吗
https://www.mongodb.com/products/compass
如果行得通的话,我建议这样做
正在做一些更改密码的事情,而这正是它失败的地方。你知道吗
顺便说一句,我会把密码修改掉的!你知道吗
相关问题 更多 >
编程相关推荐