2009-08-17 10 views
44

मैं अपने स्थानीय सर्वर (उबंटू) आईपी 192.168.1.10 साथ पर PostgreSQL स्थापित का उपयोग कर दूरस्थ डेटाबेस के लिए PostgreSQL कनेक्ट करने में असमर्थ। अब, मैं अपने क्लाइंट मशीन (उबंटू) से पीजीएडमिन के साथ आईपी 1 9 2.168.1.11 के साथ डेटाबेस तक पहुंचने का प्रयास कर रहा हूं।pgAdmin

मैं जानता हूँ कि मैं ग्राहक कनेक्ट करने के लिए अनुमति देने के लिए postgresql.conf और pg_hba.conf में परिवर्तन करने की आवश्यकता। क्या आप कृपया मुझे मार्गदर्शन कर सकते हैं?

+0

क्या आपको कोई त्रुटि मिलती है? यदि हां, तो क्या त्रुटि है? – krishna

+0

यह वास्तव में एक प्रोग्रामिंग सवाल नहीं है। हालांकि, कहकर एक पंक्ति जोड़ें "डेटा में सभी सभी 192.168.1.0/24 md5" होस्ट करें/pg_hba.conf – nos

+0

आपको क्या त्रुटि मिल रही है? विभिन्न सर्वर से डेटाबेस से कनेक्ट करने के लिए आप किस आदेश को निष्पादित कर रहे हैं? क्या आप postgresql.conf और pg_hba.conf में बदलना चाहते हैं? – Space

उत्तर

100

यह वास्तव में एक 3 कदम प्रक्रिया pgAdmin3 के माध्यम से दूरस्थ रूप से एक PostgreSQL सर्वर से कनेक्ट करने के लिए है।

नोट: मैं उबंटू 11.04 और पोस्टग्रेएसक्यूएल 8.4 का उपयोग करता हूं।

  1. आप दूरस्थ भेजे TCP कनेक्शन के लिए सुन क्योंकि डिफ़ॉल्ट सेटिंग्स केवल लूपबैक इंटरफेस पर कनेक्शन के लिए सुनने के लिए अनुमति देते PostgreSQL करना है। दूर से आप फ़ाइल में /etc/postgresql/8.4/main/postgresql.conf:

    listen_addresses = निम्न पंक्ति जोड़ने के लिए सर्वर तक पहुँचने में सक्षम होना करने के लिए '*'

  2. PostgreSQL डिफ़ॉल्ट रूप से सभी कनेक्शनों यह किसी भी दूरस्थ पते से प्राप्त करता है मना कर दिया, आपके पास करने के लिए /etc/postgresql/8.4/main/pg_hba.conf:

    मेजबान सब सब 0.0.0.0/0 md5 इस पंक्ति जोड़कर इन नियमों को आराम करने के

    यह एक अभिगम नियंत्रण नियम यह है कि यदि कोई वैध पासवर्ड (एमडी 5 कीवर्ड) प्रदान कर सकता है तो किसी को भी किसी भी पते से लॉगिन करने दें। आप 0.0.0.0/0 के बजाय आवश्यक नेटवर्क/मास्क का उपयोग कर सकते हैं।

  3. जब आप अपने विन्यास फाइल आप PostgreSQL सर्वर को पुनः आरंभ करने की जरूरत है करने के लिए इन संशोधनों को लागू किया है। अब उपयोगकर्ता नाम और पासवर्ड का उपयोग करके अपने सर्वर पर दूरस्थ रूप से लॉगिन करना संभव है। के माध्यम से कमांड लाइन को जोड़ने किया गया था और pgAdmin एडब्ल्यूएस साथ आरडीएस पर कनेक्ट नहीं मेरी psql के आधार पर निम्न

+5

यूबंटू 'sudo /etc/init.d/postgresql स्टॉप' और 'sudo /etc/init.d/postgresql स्टार्ट' में PostgresSQL सर्वर प्रारंभ करने के लिए। मैं इसके लिए googled। तो इसे यहां उन लोगों के लिए जोड़ना जो सेवा को पुनरारंभ करने के लिए कमांड नहीं जानते – ganesshkumar

+0

बहुत बहुत धन्यवाद! मैं घंटों की खोज कर रहा हूं, और यह जवाब आखिरकार PostgreSQL 9.5 के लिए मेरी समस्या का समाधान कर रहा है। विशेष रूप से दूसरा कदम यह किया। – Alexander

+1

रेडहाट में/var/lib/pgsql/9.4/data/pg_hba.conf' –

8

यदि आप PostgreSQL 8 या ऊपर का उपयोग कर रहे हैं, तो आपको सेटिंग /etc/postgresql/8.4/main/postgresql.conf में संशोधित करने की आवश्यकता हो सकती है।

लाइन जोड़ने का प्रयास करें:

listen_addresses = * 

जो PostgreSQL बता देंगे सभी नेटवर्क इंटरफेस पर कनेक्शन के लिए सुनने के लिए।

तो स्पष्ट रूप से सेट नहीं है, यह केवल एक ही मशीन से कनेक्शन को स्वीकार करेंगे, जिसका मतलब है localhost के लिए यह सेटिंग चूक।

0

मैं अपने prostgresql.conf फ़ाइल को बदलने के लिए नहीं था, लेकिन, मुझे क्या करना है था।

मैं अपने आरडीएस सार्वजनिक रूप से सुलभ करने के लिए निर्धारित किया है था। sudo find . -name *.conf तो sudo nano ./data/pg_hba.conf तो pg_hba.conf फ़ाइल host all all 0.0.0.0/0 md5 में निर्देशों के शीर्ष पर जोड़ा और pgAdmin स्वचालित रूप से मुझे लॉगिन: मुझे यकीन है कि मेरी एसीएल बना दिया है और सुरक्षा समूहों खुली समस्या तो थे और अभी भी, मैं निम्नलिखित किया था।

यह भी किसी आईपी पते के बिना pg_hba.conf फ़ाइल host all all md5 में काम किया है और यह भी मेरे आईपी पते host all all <myip>/32 md5

एक पक्ष नोट के रूप में साथ काम किया है, मेरे आरडीएस मेरा डिफ़ॉल्ट VPC में था। मेरे गैर-डिफ़ॉल्ट वीपीसी में समान सुरक्षा समूह, एसीएल और सुरक्षा समूह सेटिंग्स के साथ मेरे डिफ़ॉल्ट वीपीसी में एक समान आरडीएस उदाहरण था और मैं इसे काम नहीं कर सका। यकीन नहीं है कि क्यों, लेकिन यह एक और दिन के लिए है।

0

redhat लिनक्स के लिए

sudo vi /var/lib/pgsql9/data/postgresql.conf 

pgsql9 postgres संस्करण स्थापित करने के लिए फ़ोल्डर है, दूसरों के लिए

अलग हो सकता है

बदल listen_addresses = '*' listen_addresses = 'स्थानीय होस्ट' से और तो

sudo /etc/init.d/postgresql stop 
sudo /etc/init.d/postgresql start 
संबंधित मुद्दे