आप localhost
. पर PostgreSQL से कनेक्ट करने का प्रयास कर रहे हैं आपके कंप्यूटर पर चल रही स्क्रिप्ट का उपयोग कर रहा है, लेकिन वहां कोई PostgreSQL सर्वर नहीं चल रहा है।
इसके लिए काम करने के लिए, आपको दूरस्थ सर्वर पर ssh करना होगा, फिर वहां अपनी पायथन स्क्रिप्ट चलाएँ, जहाँ PostgreSQL सर्वर Python स्क्रिप्ट के सापेक्ष "स्थानीय" है।
(इसीलिए चल रहा है psql
काम करता है - क्योंकि आप इसे दूरस्थ सर्वर पर चला रहे हैं , जहां PostgreSQL psql
. के सापेक्ष "स्थानीय" है )।
वैकल्पिक रूप से, आप यह कर सकते हैं:
-
PostgreSQL पोर्ट को अग्रेषित करने के लिए . एक SSH सुरंग का उपयोग करें स्थानीय कंप्यूटर से रिमोट तक; या
-
सर्वर पर दूरस्थ कनेक्शन सक्षम करने के बाद, सीधे TCP/IP पर इसके होस्ट नाम या IP पते का उपयोग करके दूरस्थ PostgreSQL सर्वर से कनेक्ट करें।
ध्यान दें कि बस सर्वर का आईपी पता या होस्ट नाम localhost
के बजाय कनेक्शन स्ट्रिंग में डाल दें काम नहीं करेगा जब तक आप सर्वर को दूरस्थ कनेक्शन स्वीकार करने . के लिए कॉन्फ़िगर नहीं करते हैं . आपको listen_addresses
. सेट करना होगा गैर-स्थानीय कनेक्शन सुनने के लिए, कोई भी आवश्यक फ़ायरवॉल नियम जोड़ें, pg_hba.conf
सेट करें दूरस्थ मशीनों से कनेक्शन की अनुमति देने के लिए, और अधिमानतः एसएसएल सेट अप करने के लिए। यह सब PostgreSQL उपयोगकर्ता पुस्तिका के क्लाइंट प्रमाणीकरण अध्याय में शामिल है।
आपको शायद एक SSH सुरंग सरल और समझने में आसान लगेगी।