PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL स्थापित करने के लिए बैश स्क्रिप्ट - काम नहीं कर रहा

आपकी स्क्रिप्ट में जो हिस्सा स्पष्ट रूप से गलत है, वह यह है कि यह su - postgres के बाद की पंक्तियों की अपेक्षा करता है पोस्टग्रेज उपयोगकर्ता के रूप में चलाने के लिए। ऐसा नहीं होगा।

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

इसके बजाय, आपको कुछ इस तरह लिखना चाहिए:

su - postgres <<-'EOF'
  /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
  /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
  /usr/local/pgsql/bin/createdb test
EOF
# the lines after the EOF will be executed again as the initial user

टिप्पणियों में दिए गए सुझाव मानते हैं कि आपने पैकेज के माध्यम से पोस्टग्रेस्क्ल स्थापित किया है, लेकिन यह प्रश्न का संदर्भ नहीं है। जब आप स्रोत से ./configure . के साथ इंस्टॉल करते हैं तर्कों के बिना और make install , यह कभी भी /usr/local/pgsql . के बाहर कुछ भी स्थापित नहीं करेगा . /etc . के तहत स्टार्टअप स्क्रिप्ट का न होना पूरी तरह से सामान्य है इस संदर्भ में।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django को SQLite से PostgreSQL में कनवर्ट करना

  2. लगातार दोहराव/डुप्लिकेट की संख्या का आदेश दिया

  3. अपवाद के आधार पर विंडो फ़ंक्शन और समूह को पोस्टग्रेज़ करता है

  4. पासवर्ड प्रॉम्प्ट के बिना बैश स्क्रिप्ट में PostgreSQL CLI (psql) चलाएँ?

  5. psql:सर्वर से कनेक्ट नहीं हो सका:कनेक्शन ने इनकार कर दिया दूरस्थ डेटाबेस से कनेक्ट करते समय त्रुटि