簡體   English   中英

嘗試將 Python 連接到 MongoDB 時身份驗證失敗

[英]Auth Fail when trying to connect Python to MongoDB

我是 Python 新手,正在嘗試連接到 MongoDB ReplicaSet,但是當我嘗試連接到數據庫時,在“for x in mydoc”語句中出現以下錯誤:

文件“C:\\Users\\Nahuel Gabioud\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\pymongo\\helpers.py”,第 159 行,在 _check_command_response 引發 OperationFailure(msg % errmsg, code, response ) pymongo.errors.OperationFailure: 認證失敗。

代碼如下

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/密碼不正確。 但是,如果您位於公司防火牆后面,則可能是連接問題和錯誤消息。

我建議下載/安裝指南針,看看它是否連接到相同的連接字符串/憑據。

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

如果它確實有效,我建議這條線

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

正在做一些改變密碼的事情,這就是它失敗的地方。

Ps 我會根據您的問題編輯密碼!

你必須這樣提:

client = MongoClient('X.X.X.X',port=27017,username='iamlogin', password='abcd',authSource='xyz_db')

您的用戶名的 authSource 可訪問的數據庫名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM