2016-07-10 13 views
0

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

+0

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? –

+0

Ich benutze die neueste Version von Mongodb und Pymongo. heruntergeladen die letzten drei oder vier Tage. hat eine Pip-Installation für Pymongo – hiEntropy

+0

versucht gerade Specials in Passwort zu entkommen und das gleiche Ergebnis. es hat auch vorher geklappt, ohne zu entkommen. – hiEntropy

Antwort

0

Nichts falsch mit dem Code ... die db Benutzer eingerichtet eingegeben das falsche Passwort die gleiche zweimal in der Setup-Box, so wurde es dann akzeptiert, wenn der Code versucht, die tatsächliche richtige Antwort verwenden würde es nicht funktionieren aus offensichtlichen Gründen. Danke an alle für die Suche

Verwandte Themen