2016-03-24 11 views
7

अगर मैं खोल में चलाएँ:MongoLab/PyMongo कनेक्शन त्रुटि

mongo ds0219xx.mlab.com:219xx/dbname -u user -p pass 

यह काम करता है और अनुमति देता है मुझे डेटाबेस से कनेक्ट और जानकारी खींचने के लिए। लेकिन मैं अपने अजगर आवेदन (बोतल) के भीतर कर रहा हूँ और अगर यह चलाएँ:

import pymongo 

client = pymongo.MongoClient("mongodb://user:[email protected]:219xx/dbname") 

db = client["dbname"] 

db.users.insert_one({ 
    "user1": "hello" 
}) 

यह मुझे देता है एक:

pymongo.errors.OperationFailure: Authentication failed. 

मैं (यकीन है कि इससे पहले कि यह insert_one जाता वह असफल रही है) कॉल करें, लेकिन मुझे पूरी तरह से यकीन नहीं है।

धन्यवाद!

संपादित करें:

Traceback (most recent call last): 
File "run.py", line 1, in <module> 
from app import app 
File "/Users/Derek/Documents/programming/shenalum/app/__init__.py", line 6, in <module> 
from app import views 
File "/Users/Derek/Documents/programming/shenalum/app/views.py", line 4, in <module> 
from data import get_posts, get_user_info 
File "/Users/Derek/Documents/programming/shenalum/app/data.py", line 9, in <module> 
"user1": "hello" 
File "/usr/local/lib/python2.7/site-packages/pymongo/collection.py", line 622, in insert_one 
with self._socket_for_writes() as sock_info: 
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 17, in __enter__ 
return self.gen.next() 
File "/usr/local/lib/python2.7/site-packages/pymongo/mongo_client.py", line 718, in _get_socket 
with server.get_socket(self.__all_credentials) as sock_info: 
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 17, in __enter__ 
return self.gen.next() 
File "/usr/local/lib/python2.7/site-packages/pymongo/server.py", line 152, in get_socket 
with self.pool.get_socket(all_credentials, checkout) as sock_info: 
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 17, in __enter__ 
return self.gen.next() 
File "/usr/local/lib/python2.7/site-packages/pymongo/pool.py", line 541, in get_socket 
sock_info.check_auth(all_credentials) 
File "/usr/local/lib/python2.7/site-packages/pymongo/pool.py", line 306, in check_auth 
auth.authenticate(credentials, self) 
File "/usr/local/lib/python2.7/site-packages/pymongo/auth.py", line 436, in authenticate 
auth_func(credentials, sock_info) 
File "/usr/local/lib/python2.7/site-packages/pymongo/auth.py", line 416, in _authenticate_default 
return _authenticate_scram_sha1(credentials, sock_info) 
File "/usr/local/lib/python2.7/site-packages/pymongo/auth.py", line 188, in _authenticate_scram_sha1 
res = sock_info.command(source, cmd) 
File "/usr/local/lib/python2.7/site-packages/pymongo/pool.py", line 213, in command 
read_concern) 
File "/usr/local/lib/python2.7/site-packages/pymongo/network.py", line 99, in command 
helpers._check_command_response(response_doc, None, allowable_errors) 
File "/usr/local/lib/python2.7/site-packages/pymongo/helpers.py", line 196, in _check_command_response 
raise OperationFailure(msg % errmsg, code, response) 

pymongo.errors.OperationFailure: अनुरोध करके, यहाँ पूर्ण कॉलबैक है प्रमाणीकरण विफल रहा।

+0

क्या आप संपूर्ण ट्रेसबैक शामिल कर सकते हैं? इस तरह हम सुनिश्चित कर सकते हैं कि यह 'insert_one (...) 'कॉल से पहले विफल हो जाता है। यद्यपि त्रुटि एथ के बारे में है और इसका अर्थ शायद 'मोंग क्लाइंट' निर्माण के दौरान होगा: पी –

+0

ने कहा कि, धन्यवाद –

उत्तर

15

मैंने इसे समझ लिया। आप इसे पायथन फ़ाइल से कर सकते हैं और यह काम करेगा:

connection = pymongo.MongoClient(ab123456.mlab.com, 123456) 
db = connection[databasename] 
db.authenticate(database_user, database_pass) 
+0

कृपया कृपया इसे सही के रूप में चिह्नित करें। यह मणि है :) – Nabin

+0

इसका क्या अर्थ है? जैसा कि आप पहली पंक्ति में व्यक्त करने की कोशिश कर रहे हैं: pymongo.MongoClient (ab123456.mlab.com, 123456)। क्या पोर्ट नंबर दूसरे तर्क के रूप में दिखाई देता है? या पासवर्ड है लेकिन कोई उपयोगकर्ता नाम नहीं है? मुझे यकीन नहीं है कि इस – frogeyedpeas

+0

की व्याख्या कैसे करें मुझे आदर्श वाक्यांश लगता है कि यूआरएल ओपी की आपूर्ति के मामले में और फिर यह और अधिक समझ जाएगा :) – frogeyedpeas

संबंधित मुद्दे