Herg पर पोस्टग्रेजेस को pgAdmin3 कनेक्ट करना


9

मैं एक Django ऐप के साथ मिलकर एक Heroku Postgres डेटाबेस ( डेटाबेस ) चला रहा हूं । ऐड-ऑन को संदर्भित करने वाले डॉक्स यहां हैं । मुझे लगा कि यह समुदाय के लिए एक सार्थक प्रश्न होगा क्योंकि हरोकू ने आज अपने उपयोगकर्ताओं को सचेत किया कि वह साझा डेटाबेस ऐड-ऑन से सब कुछ माइग्रेट करेगा जो कि डिफ़ॉल्ट हुआ करता था।

मुझे pgAdmin3 को डेटाबेस से जोड़ने में कुछ परेशानी हो रही है।

उपरोक्त लिंक में दिए गए निर्देशों के अनुसार, मैं निम्नलिखित कमांड के साथ डेटाबेस की साख को प्राप्त करता हूं:

$ heroku pg:credentials HEROKU_POSTGRESQL_OLIVE

मैं मैक OSX पर Postgresql की एक होमब्रेव स्थापना का उपयोग कर रहा हूं।

इस बीच, मेरे पास है:

  • मेरे pg_postgresql.conf पर SSL स्विच किया गया;
  • सेटिंग जोड़ा गया: listen_addresses = '*'
  • और जोड़ा host all all 0.0.0.0/0 md5
  • और मेरे पोस्टग्रेज सर्वर को पुनः आरंभ किया।

तब मैं pgAdmin3 पर जाता हूं और चयन करता हूं File > Add Server

मैं हरोकू द्वारा प्रदान की गई क्रेडेंशियल इस प्रकार दर्ज करता हूं (पहला हरोकू क्रेडेंशियल नाम है, दूसरा pgAdmin फ़ील्ड नाम है):

"गुण" टैब में:

  • नाम में dbname;
  • मेजबान में मेजबान;
  • पोर्ट में पोर्ट;
  • मैं "रखरखाव डेटाबेस" रिक्त के लिए pgAdmin फ़ील्ड छोड़ता हूं;
  • उपयोगकर्ता नाम में उपयोगकर्ता;
  • पासवर्ड पासवर्ड;

SSL टैब में:

  • एसएसएल के लिए फ़ील्ड को इम करें, मैं "आवश्यकता" का चयन करता हूं (जैसा कि हरोकू द्वारा निर्देश दिया गया है)।

मैं एंट्री मारता हूं, और pgAdmin सोचता है, फिर एक त्रुटि इस प्रकार है:

An error has occurred:

Error connecting to the server: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.

निश्चित नहीं है कि इस बिंदु पर क्या करना है। किसी भी संकेत की सराहना करेंगे।


pgadmin.org/docs/1.8/connect.html कहता है: The maintenance DB field is used to specify the initial database that pgAdmin connects to, and that will be expected to have the pgAgent schema and adminpack objects installed (both optional). On PostgreSQL 8.1 and above, the maintenance DB is normally called ‘postgres’- और वह है जिसे pgAdmin ने कनेक्ट करने का प्रयास किया है। postgresउपयोगकर्ता का पासवर्ड प्रदान करें।
dezso

जवाबों:


6

यहाँ उत्तर के लिए स्टैक ओवरफ्लो पर @araqnid का धन्यवाद ।

वहाँ से उद्धृत शब्दशः:

PgAdminIII में हरोकू सर्वर के "गुण" खोलें और उस डेटाबेस का नाम होने के लिए "रखरखाव DB" मान बदलें। डिफ़ॉल्ट सेटअप डीबीए एट अल के लिए उपयुक्त है जो सर्वर पर किसी भी डेटाबेस से जुड़ सकता है, लेकिन जाहिर है कि यह आपके मामले में सच नहीं है।

यह मेरे लिए काम किया!


लेकिन इसने 1368 डेटाबेस का विरोध किया। यहां तक ​​कि अगर मैंने रखरखाव DB को मेरे db नाम के रूप में जोड़ा है
सुनील गर्ग

3

FATAL: permission denied for database "postgres"इंगित करता है कि यह पोस्टग्रेज डेटाबेस से कनेक्ट करने का प्रयास कर रहा है। हम वास्तव में ऐसे विशेषाधिकार प्रदान नहीं करते हैं। आप अपने खुद के डेटाबेस से जुड़ सकते हैं, हालांकि यह ठीक होना चाहिए। आप यह साबित कर सकते हैं कि psql CLI के माध्यम से कनेक्ट करके।

ऐसा लगता है कि आप dbnameकुछ के लिए Namepgadmin में कहा जाता है। ऐसा लगता है कि आप जो भी बना रहे हैं उसके लिए "कनेक्शन का नाम" है (बाद में इसे संदर्भित करने के लिए कुछ मनमाना), लेकिन क्या कोई जगह नहीं है जहां आप वास्तविक डेटाबेस नाम सेट कर सकते हैं, ताकि यह डिफ़ॉल्ट न हो postgres?

मैं एक pgadmin उपयोगकर्ता नहीं हूं, लेकिन बस पाए गए डॉक्स [1] के आसपास खोज कर रहा हूं जो निम्नलिखित निर्दिष्ट करते हैं:

The maintenance DB field is used to specify the initial database that pgAdmin connects to

क्या आप कोशिश कर सकते हैं?

[१] http://www.pgadmin.org/docs/dev/connect.html


1

हरोकू से डेटाबेस क्रेडेंशियल प्राप्त करने के लिए निम्न कमांड चलाएँ:

heroku pg:credentials DATABASE_URL

फिर आप db से कनेक्ट करने के लिए PG कमांडर या PGAdmin जैसे GUI टूल का उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.