尝试将Python连接到MongoDB时身份验证失败

2024-09-27 09:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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”中。你知道吗


Tags: inimportfordbresponsemongodb错误password
1条回答
网友
1楼 · 发布于 2024-09-27 09:35:41

身份验证失败将导致您认为ID/密码不正确。但是,如果您位于公司防火墙后面,则可能是连接问题和错误消息。你知道吗

我建议下载/安装Compass,看看它是否与相同的连接字符串/凭据连接。你知道吗

https://www.mongodb.com/products/compass

如果行得通的话,我建议这样做

urllib.parse.quote_plus("moica2$PerformanceGGR!!")

正在做一些更改密码的事情,而这正是它失败的地方。你知道吗

顺便说一句,我会把密码修改掉的!你知道吗

相关问题 更多 >

    热门问题