PostgreSQL 9.3 उबंटू पर शुरू क्यों नहीं होगा?


13

मैंने 2 VM की रनिंग Ubuntu 12.04 और 13.04 पर APT रिपॉजिटरी से PostgreSQL 9.3 को सफलतापूर्वक स्थापित किया है ... हालांकि, मैं इसे अपने होस्ट मशीन पर Ubuntu 12.04 चलाने के लिए ठीक से स्थापित नहीं कर सकता।

स्थापित (इस समय) ठीक हो गया लगता है, लेकिन शायद एक त्रुटि है जो मुझे समझ में नहीं आ रही है:

* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ...
Creating new cluster 9.3/main ...
  config /etc/postgresql/9.3/main
  data   /var/lib/postgresql/9.3/main
  locale en_US.UTF-8
  port   5432
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.

तो मैं तो खुद को एक PostgreSQL उपयोगकर्ता के रूप में जोड़ने की कोशिश करता हूं, लेकिन मुझे यह मिलता है:

createuser: could not connect to database postgres: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

मैं सिस्टम मॉनीटर में पोस्टग्रेक्यूएल को नहीं देख सकता, और / var / run / postgresql / फ़ोल्डर में कोई फ़ाइल नहीं है ... पूरी तरह से खाली।

EDIT: VM की फ़ाइल में / var / run / postgresql / 9.3-main.pid नामक फाइल है

होस्ट मशीन लॉग फ़ाइल पर स्थित / var / log / postgresql पर कुछ भी नहीं है

तो ... यहाँ क्या हो रहा है जो मेरे VM में नहीं चल रहा है? जैसा मैंने कहा, वीएमजी पर पोस्टगिस और पीजीडीमिन सहित अन्य इंस्टॉलेशन बिल्कुल सही आए ... कोई भी विचार नहीं है कि यह होस्ट मशीन क्यों नहीं चल रही है ...


क्या आपके पास वास्तव में एक /var/run/postgresqlनिर्देशिका है? सक्सेसफुल इंस्टालेशन के बाद एक स्टेज पर वह फोल्डर मेरी मशीन पर गायब था। विन्यास का उपयोग किस निर्देशिका के बारे में कहना चाहिए?
कॉलिन 'टी हार्ट

@ Colin'tHart मेरे पास वह निर्देशिका है ... हालाँकि इसमें कुछ भी नहीं है ... VM की, में 9.3-main.pid नामक एक फ़ाइल बनाई गई है, मुझे वह जानकारी कहाँ मिलेगी?
DPSSpatial

postgresql.confविन्यास निर्देशिका में, जो ऊपर के अनुसार है, है /etc/postgresql/9.3/main। आपको लॉग फ़ाइलों में भी देखना चाहिए, शायद में /var/log/postgresql
कॉलिन टी हार्ट

@ Colin'tHart लॉग फ़ाइल खाली है ... कॉन्फ़िग फ़ाइल - और मुझे लगता है कि यह वही है जिसके बाद आप कहते हैं - यदि # बाह्य_पिड_फाइल स्पष्ट रूप से सेट नहीं किया गया है, तो कोई अतिरिक्त PID फ़ाइल नहीं लिखी गई है। external_pid_file = '/var/run/postgresql/9.3-main.pid'
DPSSpatial

क्या उस निर्देशिका में एक सॉकेट फ़ाइल है, या यह वास्तव में पूरी तरह से खाली है?
कॉलिन 'टी हार्ट

जवाबों:


16

जब PostgreSQL स्थापित किया गया था तो मेरी स्थानीय सेटिंग्स ठीक से कॉन्फ़िगर नहीं की गई थीं। शुद्ध करना और पुनः स्थापित करना मदद नहीं करता था। मैंने यहां निर्देशों का पालन ​​किया और मेरे लिए यह चाल चली।

लिंक की गई जानकारी के आवश्यक हिस्से नीचे दिए गए हैं:

समस्या ने निम्नलिखित तरीके से खुद को दिखाया:

warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
...
are supported and installed on your system.

पहले एक को निष्पादित करके हल करना बहुत आसान था:

#dpkg-reconfigure locales

... और पसंदीदा स्थान चुनना।

लेकिन उसके बाद भी PostgreSQL ने शुरू करने से इनकार कर दिया। यह इस तथ्य के कारण है कि स्थापना प्रक्रिया ने स्थापना के समय क्लस्टर बनाने की कोशिश की थी, लेकिन खराब स्थानों के कारण ऐसा नहीं किया गया था। इसलिए हमें इस चरण को निष्पादित करके फिर से करना होगा:

#pg_createcluster 9.3 main --start

(PostgreSQL के 9.3 संस्करण के लिए)

उस कदम के बाद PostgreSQL के माध्यम से निर्दोष रूप से शुरू होता है

#/etc/init.d/postgresql start

2
मेरे जीवन की रक्षा की। यह वास्तव में बेकार है कि जब लोकेल को ठीक किया जाता है तब भी शुद्ध करना और पुन: स्थापित करना मदद नहीं करता है। इसने मेरे जीवन के 2 घंटे बर्बाद कर दिए :(
Escher

मामले में pg_createclusterआपको बताता है कि क्लस्टर पहले से मौजूद है, आपको इसे पहले ड्रॉप करने की आवश्यकता है (यह इसमें किसी भी डेटा को मिटा देगा, इसलिए सुनिश्चित करें कि आपके पास बैकअप है) pg_dropcluster 9.3 main:।
फ्लोरियन ब्रूकर

6

उम्मीद है कि आप इस मुद्दे को पहले ही हल कर चुके हैं, लेकिन मैं एक ऐसी ही समस्या में चल रहा हूं, जो एक अलग स्रोत है, और शायद मेरा अनुभव मदद करेगा यदि आपको अभी भी समस्या हो रही है।

उबंटू में 9.3 पर मेरी समस्या सॉकेट डीआईआर से संबंधित है जो एक क्षणिक डायर / रन है। मूल रूप से, init.d स्क्रिप्ट को माना जाता है कि यदि वह स्टार्ट एक्शन के दौरान मौजूद नहीं है तो सॉकेट डीआईआर को रन / रन / पोस्टग्रैक्कल में बनाएगी। यह हमेशा एक रिबूट के बाद चीजों का राज्य होने जा रहा है।

हालाँकि, समस्या यह है कि init.d स्क्रिप्ट प्रारंभ कार्रवाई को निष्पादित करने से पहले बाहर निकल जाएगी यदि सॉकेट डायर मौजूद नहीं है। ऐसा इसलिए है क्योंकि pg_lsclusters को कॉल सॉकेट डायर को w / o विफल कर देगा, जो बदले में स्टार्ट एक्शन को सॉकेट डायर बनाने से रोकता है।

मुझे पता नहीं चला है कि सबसे अच्छा समाधान क्या है, लेकिन अगर मैं pg_lsclusters को कॉल करने से पहले प्रारंभ कार्रवाई से सॉकेट डीआईआर बनाने के लिए तर्क को स्थानांतरित करता हूं, तो मैं एक समस्या के बिना रिबूट के बाद सर्वर को शुरू करने में सक्षम हूं।

यहाँ प्रारंभ एक्शन का वह भाग है जो सॉकेट डीआईआर बनाने का काम करता है:

# create socket directory
if [ -d /var/run/postgresql ]; then
  chmod 2775 /var/run/postgresql
else
  install -d -m 2775 -o postgres -g postgres /var/run/postgresql
  [ -x /sbin/restorecon ] && restorecon -R /var/run/postgresql || true
fi

अगर इसका मूल कारण मेरे लिए स्पष्ट हो जाता है, तो मैं एक अपडेट पोस्ट करूंगा, क्योंकि यह स्पष्ट रूप से अपेक्षित व्यवहार नहीं हो सकता है।

परिशिष्ट:

मुझे लगता है कि इस समस्या के कारण मैं भाग रहा था, क्योंकि मेरे पास unix_socket_directories के लिए कॉन्फ़िगर किया गया अच्छा मान नहीं है । 9.2 पर यह कॉन्फ़िगरेशन विकल्प unix_socket_directory हुआ करता था, जिसे मैंने unix_socket_directories पर स्विच करने के बजाय हटा दिया था। चूँकि मैंने unix_socket_directories के लिए मान निर्धारित किया है, इसलिए सर्वर शुरू होने के साथ मेरे पास कोई समस्या नहीं थी।


धन्यवाद @ tdg5 !!! मैंने इसे हल नहीं किया है, लेकिन मुझे लगता है कि यह मेरी मशीन पर कई खराब इंस्टॉल के लिए आता है। Ubuntu की एक नई स्थापना पर PostgreSQL Apt रिपोजिटरी से स्थापित करने से मेरी समस्याएं हल हो
गईं

3
@mapBaker - मैंने अपनी विशेष स्थिति में पीजी 9.3 स्टार्टअप समस्या के मूल कारण को शामिल करने के लिए अपनी प्रतिक्रिया अपडेट की। शायद यह आपके लिए भी मददगार होगा।
tdg5

1
मेरा PG9.3 रिबूट के बाद शुरू नहीं हुआ। 9.3 पोस्ट के लिए "unix_socket_directories = '/ var / run / postgresql' को जोड़कर" postgresql.conf "ने इसे हल किया। धन्यवाद
alfonx

धन्यवाद! कुछ समय के लिए इस पर काम कर रहे हैं, इस डली को खोजने के लिए खुशी है!
सर्बान तानसा

3

मुझे आपके मामले / svar/run/postgresql/.s.PG3.5532 पर सॉकेट फ़ाइल के साथ कई समस्याएं हैं

सुनिश्चित करें कि / var / run / postgresql निर्देशिका मौजूद है और अधिक जानकारी के लिए postgresql शुरू करने से पहले यह लिखने योग्य है कि इस चर्चा को देखें ।

जब -h फ्लैग को कनेक्ट करते समय भी:

psql -h localhost 

और देखें कि क्या यह हल करता है।


1

यह Ubuntu पर समस्या को ठीक करने के लिए लगता है:

Postgresql.conf संपादित करें:

unix_socket_directories='/var/run/postgresql

अब करते हैं service postgresql start


1

मैं PSQL में नया हूं, लेकिन मैंने स्टार्ट को संपादित करके समस्या का हल किया है। यदि मैंने सर्वर को मैन्युअल रूप से प्रबंधित करने के लिए "ऑटो" सेटिंग पर टिप्पणी की थी, लेकिन इसके लिए एक मूल्य की आवश्यकता है: ऑटो, मैनुअल या अक्षम।

EGD।


1

मेरी तरफ से स्टार्ट अप स्क्रिप्ट गलत है। कॉन्फ़िगरेशन फ़ाइलों को /etc/postgresql/9.3/main में स्थापित किया गया है, लेकिन स्क्रिप्ट /usr/share/postgresql-common/init.d-functions में खोज कर रहा है

for c in /etc/postgresql/"$2"/*; do 

इस लाइन को बदलें

for c in /etc/postgresql/"$2"/main; do

-2

सब,

कुछ खुदाई के बाद, मुझे यहाँ (ए) समाधान मिला:

http://ubuntuforums.org/showthread.php?t=869080

जिसमें ये निर्देश थे:

टर्मिनल में चलाएं:

sudo mkdir -p /usr/local/pgsql/data
sudo chown -R postgres:postgres /usr/local/pgsql/
sudo su - postgres
cd /usr/lib/postgresql/9.3/bin/
./initdb -D /usr/local/pgsql/data
./postgres -D /usr/local/pgsql/data

अब मेरा सर्वर चालू है और चल रहा है !!!

संपादित करें : पुनरारंभ करने के बाद, सर्वर अभी भी नहीं चल रहा है ...

किसी भी विचार के रूप में क्यों मैं इसे चलाने की जरूरत की सराहना की है!


क्या आप सुनिश्चित हैं कि यह 9.3 चल रहा है? संस्करण संख्या संदिग्ध लगती है ...
dezso

@dezso संस्करण बदलने के लिए क्षमा करें # जब मैं उन आदेशों में चिपका दिया गया ... यह सब v9.3 पर है ...
DPSSpatial

आपको पोर्ट निर्दिष्ट करने की आवश्यकता हो सकती है। डिफ़ॉल्ट पोर्ट का उपयोग पोस्टग्रेज की आपकी पुरानी स्थापना द्वारा किया जा रहा है। आपका नया इंस्टॉलेशन पोर्ट 5433 का सबसे अधिक उपयोग कर रहा है, लेकिन यह कुछ ऐसा है जिसे आप पोस्टग्रैस्कल कॉन्फिग फाइल पढ़कर सुनिश्चित कर सकते हैं:/etc/postgresql/9.3/main/postgresql.conf
user35581

1
यह एक समाधान हो सकता है लेकिन स्पष्ट रूप से एक अच्छा समाधान नहीं है। यह एक समस्या dba.stackexchange.com/a/91511/8099
sorin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.