2017-08-17 3 views
0

Nous avons écrit un morceau de code en script python en utilisant pymongo qui se connecte à mongodb.L'authentification n'a pas réussi à se connecter à mongodb en utilisant pymongo

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

Dans le programme, le code ressemble à:

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}) 

Quand j'ai essayé de faire ces opérations, il déclenche une erreur:

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. 

En MongoDB, tout en effectuant des requêtes que nous sommes obtenir les réponses normalement, sans soulever d'erreurs.

+0

essayez de vous connecter avec le serveur mongo manuellement à l'aide des mêmes informations d'identification, vous pouvez utiliser shell mongo pour cela. – Shashank

+0

@Shashank Je peux me connecter manuellement au serveur mongo avec les mêmes informations d'identification, mais mon but est de me connecter à mongo en utilisant 'pymongo' –

+0

Avez-vous essayé ces solutions: 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- auth-failed – Shashank

Répondre

0

Vous avez une erreur d'authentification, de sorte que vous devez d'abord

import pymongo 
from pymongo import MongoClient 

client = MongoClient('mongodb://abc:[email protected]:27017') 

Maintenant, vous pouvez essayer d'insérer votre document.

Taken de official mongodb documentation