2014-07-17 5 views
5

पर मुझे दूरस्थ डेटाबेस से कुछ डेटा प्राप्त करने की आवश्यकता है। यहाँ कोड कनेक्ट करने के लिए:psycopg2 दूरस्थ डेटाबेस

import psycopg2 

params = { 
    'dbname': 'some_db', 
    'username': 'user', 
    'password': 'password', 
    'host': '333.333.333.333', 
    'port': 3333 
} 

conn = psycopg2.connect(**params) 

तब मैं निष्पादित करने के लिए क्वेरी का प्रयास करें:

cur = conn.cursor() 
cur.execute("SELECT * FROM sometable") 

और उसके बाद मैं अपवाद:

psycopg2.ProgrammingError: relation sometable does not exist 

अब अगर मैं ठीक उसी मानकों के साथ डेटाबेस से कनेक्ट psql के माध्यम से उसी मशीन से:

psql --dbname=some_db --username=user --password=password --host=333.333.333.333 --port=3333 

और क्वेरी को निष्पादित करने का प्रयास करें:

SELECT * FROM sometable; 

मैं किसी भी त्रुटि के बिना परिणाम मिलता है। और यह न केवल एक टेबल के साथ होता है, बल्कि उन सभी डेटाबेस में भी होता है।

संपादित

मैं पैरामीटर में छोटी सी गलती की है। मैं

'username': 'user', 

लेकिन नहीं का उपयोग करें:

'user': 'user', 

उत्तर

7

, विभिन्न चर नाम के साथ जोड़ने की तरह का प्रयास करें:

params = { 
    'database': 'some_db', 
    'user': 'user', 
    'password': 'password', 
    'host': '333.333.333.333', 
    'port': 3333 
} 

देखें:

http://initd.org/psycopg/docs/module.html

+0

मैंने कोशिश की। एक ही त्रुटि चुराओ। – Moisizz

+0

क्या आपने इसके बजाय एक डीएसएन स्ट्रिंग का उपयोग करने की कोशिश की है? जैसा कि आप जोर देते हैं, यदि आप सीधे psql के साथ डेटाबेस से कनेक्ट कर सकते हैं और आप सफल हैं, तो उसी क्रेडेंशियल्स के साथ psycopg2 के साथ एक कनेक्शन के बारे में कार्य करना चाहिए। – Greg

+0

मैंने डीएसएन स्ट्रिंग से कनेक्ट करने का प्रयास किया। वही परिणाम :( – Moisizz

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