2017-08-17 6 views
0

Wir haben ein Stück Code in Python-Skript mit pymongo geschrieben, die mit Mongodb verbindet.Authentifizierung fehlgeschlagen Verbindung zu Mongodb mit Pymongo

username = 'abc' 
password = 'xxxxxx' 
server = 'dns name of that server' 
port = 27017 

Im Programm sieht der Code wie:

import pymongo 
from pymongo import MongoClient 
client = MongoClient(url, serverSelectionTimeoutMS=300) 
database = client.database_name 
data_insert = database.collection_name.insert_one({'id': 1, 'name': xyz}) 

Als ich versuchte, diese Operationen zu tun, es einen Fehler auslöst:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 1114, in next 
    if len(self.__data) or self._refresh(): 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 1036, in _refresh 
    self.__collation)) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 873, in __send_message 
    **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 905, in _send_message_with_response 
    exhaust) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 916, in _reset_on_error 
    return func(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/server.py", line 99, in send_message_with_response 
    with self.get_socket(all_credentials, exhaust) as sock_info: 
    File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__ 
    return self.gen.next() 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/server.py", line 168, in get_socket 
    with self.pool.get_socket(all_credentials, checkout) as sock_info: 
    File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__ 
    return self.gen.next() 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/pool.py", line 792, in get_socket 
    sock_info.check_auth(all_credentials) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/pool.py", line 512, in check_auth 
    auth.authenticate(credentials, self) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/auth.py", line 470, in authenticate 
    auth_func(credentials, sock_info) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/auth.py", line 450, in _authenticate_default 
    return _authenticate_scram_sha1(credentials, sock_info) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/auth.py", line 201, in _authenticate_scram_sha1 
    res = sock_info.command(source, cmd) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/pool.py", line 419, in command 
    collation=collation) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/network.py", line 116, in command 
    parse_write_concern_error=parse_write_concern_error) 
    File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 210, in _check_command_response 
    raise OperationFailure(msg % errmsg, code, response) 
pymongo.errors.OperationFailure: Authentication failed. 

In MongoDB, während der Durchführung von Abfragen sind wir die Antworten normalerweise erhalten, ohne irgendwelche Fehler zu verursachen.

+0

Versuch mit dem Mongo Server verbinden manuell die gleichen Anmeldeinformationen verwenden, können Sie Mongo Shell dafür. – Shashank

+0

@Shashank Ich kann mich mit den gleichen Zugangsdaten manuell mit dem Mongo Server verbinden, aber mein Ziel ist die Verbindung mit Mongo mit 'pymongo' –

+0

Haben Sie diese Lösungen ausprobiert: 1. https://stackoverflow.com/questions/40346767/pymongo- auth-failed-in-python-script 2. https://stackoverflow.com/questions/36200288/mongolab-pymongo-connection-error 3. https://stackoverflow.com/questions/23682933/python-pymongo- Authentifizierung fehlgeschlagen – Shashank

Antwort

Verwandte Themen