2010-03-03 18 views
41

पर पोस्टग्रेस नामक डिफ़ॉल्ट डेटाबेस स्पष्ट रूप से एक डेटाबेस "postgres" है जो प्रत्येक postgresql सर्वर स्थापना पर डिफ़ॉल्ट रूप से बनाया गया है। क्या कोई मुझे बता सकता है या दस्तावेज के लिए मुझे बता सकता है कि इसका क्या उपयोग किया जाता है?पोस्टग्रेस्क्ल सर्वर

उत्तर

28

ऐसा प्रतीत होता है कि इसमें वास्तव में एक अच्छी तरह से परिभाषित उद्देश्य नहीं है। डॉक्स के अनुसार:

एक डेटाबेस क्लस्टर बनाना, निर्देशिका, जिसमें डेटाबेस डेटा रहेंगे बनाने साझा सूची तालिकाओं (टेबल कि बजाय किसी विशेष डेटाबेस के लिए की तुलना में पूरे क्लस्टर के हैं) पैदा होते हैं, और "टेम्पलेट 1" और "पोस्टग्रेस" डेटाबेस बनाना।

[...]

postgres डेटाबेस एक डिफ़ॉल्ट डेटाबेस उपयोगकर्ताओं, सुविधाएं और तीसरे पक्ष के एप्लिकेशन द्वारा उपयोग के लिए है।

(स्रोत: http://www.postgresql.org/docs/8.2/interactive/app-initdb.html)

25

वहाँ भी डेटाबेस template0, अपने सुरक्षा तंत्र है जब आप सभी दूसरों अप पेंच है।

  1. पोस्टग्रेस से कनेक्ट होने वाला आपका डिफ़ॉल्ट डेटाबेस है।
  2. Template1 नए डेटाबेस बनाने के लिए अपने डिफ़ॉल्ट है, ये हैं सिर्फ Template1 की तरह बनाए जाने पर Template1 (गलत सेटिंग आदि) दूषित है और आप का एक बहुत खर्च करने के लिए नहीं करना चाहती
  3. template0 उपयोगी है इसे ठीक करने का समय बस टेम्पलेट 1 ड्रॉप करें और डेटाबेस टेम्पलेट 0 का उपयोग कर एक नया टेम्पलेट 1 बनाएं।
+5

क्या यह 'पोस्टग' को हटाना सुरक्षित है यदि आप इसका उपयोग नहीं कर रहे हैं तो res 'डेटाबेस? – CMCDragonkai

67

जब कोई क्लाइंट एप्लिकेशन पोस्टग्रेस सर्वर से कनेक्ट होता है, तो उसे यह निर्दिष्ट करना होगा कि वह कौन सा डेटाबेस कनेक्ट करना चाहता है। आप एक डेटाबेस का नाम पता नहीं है (क्लस्टर डाकपाल जो के लिए आप कनेक्ट द्वारा सेवित के अंदर), आप कमांड के साथ डेटाबेस नामों की सूची पा सकते हैं:

psql -l 

जब आप कि आदेश चला, psql सर्वर से कनेक्ट होता है और डेटाबेस नामों की सूची के लिए pg_database क्वेरी करता है। हालांकि, चूंकि psql एक पोस्टग्रेस क्लाइंट एप्लिकेशन है, इसलिए यह कम से कम एक डेटाबेस का नाम जानने के बिना सर्वर से कनेक्ट नहीं हो सकता है: कैच -22। इसलिए, जब आप "psql -l" चलाते हैं तो "postgres" नामक डेटाबेस से कनेक्ट करने के लिए psql को हार्ड-कोड किया जाता है।

-- Korry 
0

आप एक से अधिक डेटाबेस कनेक्शन का उपयोग कर रहे हैं, तो जब नए डेटाबेस बनाने, तो सभी कनेक्शनों template1 या template0 के लिए नहीं किया जा सकता है।

पोस्टग्रेस्क्ल एक त्रुटि फेंक देगा यदि स्रोत डीबी अन्य डीबी बनाने के दौरान अन्य कनेक्शनों द्वारा उपयोग किया जाता है।

तो नए डीबी बनाने के लिए postgres कनेक्ट करना बेहतर है।

enter image description here

0

पूछा ऊपर टिप्पणी: "यह अगर आप इसे उपयोग नहीं कर रहे postgres डेटाबेस को हटाने के लिए सुरक्षित है?"- CMCDragonkai अक्टू 22 '16 10:37

PostgreSQL प्रलेखन 9.3.3 से पर:

प्रारंभ करने के बाद, एक डेटाबेस क्लस्टर postgres नाम के एक डेटाबेस है, जिसके द्वारा इस्तेमाल के लिए एक डिफ़ॉल्ट डेटाबेस के रूप में होती है में शामिल होंगे । उपयोगिताओं, उपयोगकर्ताओं और तीसरे पक्ष के अनुप्रयोगों डेटाबेस सर्वर पर ही postgres डेटाबेस की आवश्यकता नहीं है अस्तित्व के लिए, लेकिन कई बाहरी उपयोगिता कार्यक्रम मान यह मौजूद है

[ध्यान दें:। एक डेटाबेस क्लस्टर है कि एक द्वारा किया जाता है डेटाबेस का एक संग्रह है एक चल रहे डेटाबेस सर्वर का एक उदाहरण।]

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