2016-04-05 33 views
6

मैं हाल ही में स्थापित किया है PostGIS मेरे Mac Homebrew का उपयोग कर (एल कैप्टन 10.11.4, Postgres संस्करण 9.5.1 है), और मैं इन निर्देशों का पालन कर रहा हूँ - http://morphocode.com/how-to-install-postgis-on-mac-os-x/गंभीर त्रुटि ताला फ़ाइल "postmaster.pid" पहले से मौजूद

जब मैं का उपयोग कर Postgres प्रारंभ करने का प्रयास

pg_ctl -D /usr/local/var/postgres start 

मैं निम्नलिखित त्रुटि मिलती है:

$ FATAL: lock file "postmaster.pid" already exists 
HINT: Is another postmaster (PID 280) running in data directory "/usr/local/var/postgres"? 

तो मैं कुछ घंटे बिताए यह कैसे पता करने के लिए शोध, लेकिन कोई av को बीमार। https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists- (उपरोक्त मामले में, मैं kill 208 भाग गया), लेकिन जैसे ही मैं Postgres फिर से शुरू करने की कोशिश के रूप में,

मुझे मिल गया -

विशेष रूप से, मैं सुपर उपयोगकर्ता पर एक जवाब में के रूप में सिफारिश पीआईडी ​​मारने की कोशिश की एक ही त्रुटि, हालांकि एक अलग पीआईडी ​​संख्या के साथ। मैंने देखा कि कुछ लोगों ने पोस्टमास्टर.pid फ़ाइल को हटाने की सिफारिश की है, लेकिन मुझे लगता है कि मुझे इसे अंतिम उपाय के रूप में सहेजना चाहिए ...

इस कारण का एक हिस्सा है कि मुझे यह सुनिश्चित नहीं है कि इसे कैसे ठीक किया जाए I पोस्टमास्टर क्या है इस पर वास्तव में स्पष्ट नहीं हूं - मैं बस इस सब के बारे में जानना शुरू कर रहा हूं।

psql db_name कमांड के माध्यम से पोस्टग्रेज़ डेटाबेस में घुसपैठ करना ठीक है, इसके लिए क्या उचित है।

उत्तर

3

Postmaster मुख्य पोस्टग्रेएसक्यूएल प्रक्रिया है। आप PostgreSQL को शुरू करने का प्रयास कर रहे हैं जो पहले से चल रहा है (और आप स्वयं कह रहे हैं कि आप इससे जुड़ सकते हैं)। बस अपनी प्रक्रिया के उस चरण को छोड़ दें।

+0

ओह! धन्यवाद। यह अब मेरे लिए स्पष्ट प्रतीत होता है, लेकिन मैं बस अपना रास्ता ढूंढ रहा हूं। बहुत सराहना की। – skwidbreth

7

टीएल; डीआर: चूंकि आप डेटाबेस से कनेक्ट कर सकते हैं, इसलिए आपको सर्वर को फिर से शुरू करने की आवश्यकता नहीं है - यह पहले से चल रहा है।


pg_ctl PostgreSQL सर्वर को नियंत्रित करने के लिए उपयोग किया जाता है। अपने सर्वर पहले से ही शुरू कर दिया गया है के बाद से, अपने आदेश:

pg_ctl -D /usr/local/var/postgres start 

एक त्रुटि देता है, कह रही है postmaster.pid पर एक ताला है कि वहाँ - जो सच है के बाद से वहाँ पहले से ही है कि पीआईडी ​​का उपयोग कर एक सर्वर है।


वहाँ दो तरीके हैं:

  1. सबसे बुनियादी तरीका - कि कदम को छोड़, अपने सर्वर पहले से ही चल रहा है!
  2. एक अनावश्यक ऑपरेशन निष्पादित करना - सर्वर को रोकना, और फिर इसे फिर से शुरू करना। तो

    pg_ctl -D /usr/local/var/postgres stop 
    

    कि आप डाकपाल पर ताला अब और नहीं होगा और आप अपने आदेश का उपयोग कर सकता है इसे फिर से शुरू करने के लिए:

आप कर अपने सर्वर रोक सकता है।

जब अपने लैपटॉप दुर्घटनाग्रस्त हो गया मैं एक मुश्किल रिबूट के बाद ओ पी के रूप में इस एक ही समस्या हो रही थी:

+1

ओह मैन, बहुत बहुत धन्यवाद। तुम्हारी मदद के लिए शुक्रिया। किसी दिन, मैं एक पोस्टजीआईएस मास्टर बनूंगा ... लेकिन तब तक ... – skwidbreth

+0

पोस्टजीआईएस वास्तव में आपकी समस्या से कोई लेना-देना नहीं था :-) यह कड़ाई से पोस्टग्रेस सेवा समस्या है। –

+0

मैं खोदता हूं - बस यह सुनिश्चित कर रहा हूं कि मैंने टेबल पर सबकुछ रखा है। – skwidbreth

3

मामले में इस पोस्ट कर रहा है इसे किसी और मदद करता है। क्या मदद की मुझे निम्न आदेश चल रहा था देखने के लिए क्या पीआईडी ​​postmaster.pid के साथ जुड़े थे:

cat /usr/local/var/postgres/postmaster.pid

पहले नंबर प्रतीत होता है कि पीआईडी ​​हो जाएगा। गतिविधि मॉनिटर में देखकर, मैं देख सकता था कि पोस्टग्रेज़ चल रहा था, लेकिन एक पीआईडी ​​संख्या के बिना जो दिखाए गए एक से मेल खाता था।

सुपरसुर पर संदर्भित उत्तर में उल्लिखित चरणों के बजाय, मैंने अपने लैपटॉप को ठीक से पुनरारंभ किया और फिर टर्मिनल खोला और brew services restart postgresql चलाया।

यह postmaster.pid को हटाने के बिना काम करता है, जिसे मैंने कुछ अन्य पोस्टों की सिफारिश की है। कभी-कभी यह सरल समाधान है जो काम करता है।

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