Ich habe eine Datenbank mit Mongolab wo die DB hatte den gleichen Namen wie die Sammlung. Ich entschied, dass ich nicht mochte, löschte es und machte ein besseres Namensschema. Ich fügte einen neuen Benutzer/ein neues Kennwort für die neue db hinzu und versuchte, authentifiziert zu werden. Es scheitert immer wieder. Nicht sicher warum. Ich überprüfe meine Zugangsdaten und sie sind korrekt. Ich habe die URI überprüft, die Mongolab bietet und das ist auch richtig. Dieser Code funktionierte gut für die erste db.PyMongo Authentifizierung fehlgeschlagen
dies ist mein Login-Code
def __init__(self, user_id, password, database, collection):
# mongodb://<dbuser>:<dbpassword>@ds017205.mlab.com:17205/words
mongodb_uri = "mongodb://" + user_id + ":" + password + "@ds017205.mlab.com:17205/" + database
client = pymongo.MongoClient(mongodb_uri)
db = client[database]
self.collection = db[collection] # is declared in class
dies folgenden Fehler mit diesem würde geschätzt
Error
Traceback (most recent call last):
File "C:\Users\Austin\PycharmProjects\Words\test_mongodb.py", line 15, in testUpdate
results = self.mongodb_obj.update(test)
File "C:\Users\Austin\PycharmProjects\Words\mongodb.py", line 38, in update
upsert=True
File "C:\Python33\lib\site-packages\pymongo\collection.py", line 2235, in update
with self._socket_for_writes() as sock_info:
File "C:\Python33\lib\contextlib.py", line 48, in __enter__
return next(self.gen)
File "C:\Python33\lib\site-packages\pymongo\mongo_client.py", line 718, in _get_socket
with server.get_socket(self.__all_credentials) as sock_info:
File "C:\Python33\lib\contextlib.py", line 48, in __enter__
return next(self.gen)
File "C:\Python33\lib\site-packages\pymongo\server.py", line 152, in get_socket
with self.pool.get_socket(all_credentials, checkout) as sock_info:
File "C:\Python33\lib\contextlib.py", line 48, in __enter__
return next(self.gen)
File "C:\Python33\lib\site-packages\pymongo\pool.py", line 541, in get_socket
sock_info.check_auth(all_credentials)
File "C:\Python33\lib\site-packages\pymongo\pool.py", line 306, in check_auth
auth.authenticate(credentials, self)
File "C:\Python33\lib\site-packages\pymongo\auth.py", line 436, in authenticate
auth_func(credentials, sock_info)
File "C:\Python33\lib\site-packages\pymongo\auth.py", line 416, in _authenticate_default
return _authenticate_scram_sha1(credentials, sock_info)
File "C:\Python33\lib\site-packages\pymongo\auth.py", line 216, in _authenticate_scram_sha1
res = sock_info.command(source, cmd)
File "C:\Python33\lib\site-packages\pymongo\pool.py", line 213, in command
read_concern)
File "C:\Python33\lib\site-packages\pymongo\network.py", line 99, in command
helpers._check_command_response(response_doc, None, allowable_errors)
File "C:\Python33\lib\site-packages\pymongo\helpers.py", line 196, in _check_command_response
raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: Authentication failed.
Hilfe erzeugt. Danke
Welche Version von Pymongo und MongoDB verwenden Sie? Wie müssen Sie auf der [Dokumentationsseite für die Authentifizierungsbeispiele] (https://api.mongodb.com/python/current/examples/authentication.html) alle Zeichen im Passwort umgehen? –
Ich benutze die neueste Version von Mongodb und Pymongo. heruntergeladen die letzten drei oder vier Tage. hat eine Pip-Installation für Pymongo – hiEntropy
versucht gerade Specials in Passwort zu entkommen und das gleiche Ergebnis. es hat auch vorher geklappt, ohne zu entkommen. – hiEntropy