2012-06-13 5 views
6

मुझे हाल ही में होमब्रू और पोस्टग्रेज़ को पुनर्स्थापित करना पड़ा और अब पोस्टग्रेस रेल के साथ काम नहीं कर रहा है।पोस्टग्रेस sh: /usr/local/var/postgres/server.log: ऐसी कोई फ़ाइल या निर्देशिका

पहले जब रेल रों भागने की कोशिश कर, मैं इस मिल:

/Users/lee/.rvm/gems/[email protected]/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:1206:in `initialize': could not connect to server: Connection refused (PG::Error) 

तो मैं postgres शुरू करने का प्रयास है और मैं इस मिल:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 
server starting 
sh: /usr/local/var/postgres/server.log: No such file or directory 

ऐसा लगता है कि postgres इस वजह से चल रहा है:

ps aux | grep postgreslee    1099 0.3 0.0 2425480 188 s000 R+ 5:48PM 0:00.01 grep postgres 

मैं पूरी तरह से यहां एक नुकसान में हूं कि मैं इसे क्यों नहीं चला सकता।

+2

आपने शायद नए पोस्टगर्स को एक अलग निर्देशिका में स्थापित किया है। सबसे पहले यह देखने के लिए कि क्या यह शुरू होता है, -l ध्वज + logfilename को छोड़ने का प्रयास करें। बीटीडब्ल्यू: आप postgres.conf में भी logfile निर्दिष्ट कर सकते हैं। निर्देशिका "/ usr/local/var/postgres" में क्या होता है? क्या यह अस्तित्व में है? मालिक कौन है ? – wildplasser

उत्तर

5

पहला, पीएस | grep वास्तव में प्रक्रिया पेड़ से बाहर अपने grep खींच रहा है। पोस्टग्रेस नहीं चल रहा है। इस तरह की चीज तब होती है जब लॉग इन डालने की निर्देशिका मौजूद नहीं होती है। तो शायद आप इसे एक गैर-मौजूद निर्देशिका में इंगित कर रहे हैं।

यह तब हो सकता है यदि आपके पास अभी तक कोई डेटा निर्देशिका नहीं है।

अनुशंसाएँ:

  1. सुनिश्चित करें कि आपके डेटा निर्देशिका मौजूद बनाकर प्रारंभ। pg_hba.conf के लिए खोजें और देखें कि यह आपके सिस्टम पर कहीं भी है या नहीं। यदि ऐसा है तो यह आपके डेटा निर्देशिका में एक अच्छा मौका है (यदि यह आदि में है, तो आधार/1/PG_VERSION की तलाश करें यह आपकी डेटा निर्देशिका में आधार से एक स्तर ऊपर होगा)।
  2. यदि यह पहले से मौजूद है तो लॉगिंग सेटिंग को उचित रूप से सेट करने और -l विकल्प को ड्रॉप करने के लिए पहले से ही postgresql.conf को बदल दें।
  3. यदि कोई डेटा निर्देशिका मौजूद नहीं है, तो एक बनाने के लिए initdb कमांड का उपयोग करें।
+6

यदि आप ओएसएक्स (होमब्री के माध्यम से) पर एक नया इंस्टॉलेशन करते हैं, तो आपको पहले डेटाबेस बनाने की आवश्यकता है 'initdb/usr/local/var/postgres -E utf8' – oschrenk

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