![](/img/trans.png)
[英]connection times out when trying to connect to mongodb atlas with python
[英]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.