जैसा कि अन्य उत्तरों ने अन्य विकल्पों को संबोधित किया, मुझे लगता है कि मैं मैक ओएस एक्स सर्वर शेर पर कुछ प्रदान कर सकता हूं। मैं बहुत ही समान मुद्दे में भागता हूं - मेरे मामले में भी -h localhost
काम नहीं किया क्योंकि पोस्टग्रेस्क्लुएल में नेटवर्किंग अक्षम कर दी गई थी, जो कि कई मामलों में बहुत अच्छा विचार है। मैक ओएस एक्स सर्वर के साथ बात यह है कि यह launchd
के माध्यम से PostgreSQL सर्वर लॉन्च करता है।
कुछ संकेत आप के चारों ओर जाने के रूप में:
serveradmin
सेवा: postgres
launchd
विन्यास फाइल: /System/Library/LaunchDaemons/org.postgresql.postgres.plist
- डेटाबेस फ़ोल्डर:
/var/pgsql
- सॉकेट फ़ोल्डर:
/var/pgsql_socket
कि चोर मूर्तिकला फ़ाइल कई कॉन्फ़िगरेशन निर्देशों को ओवरराइड करती है जो डेटाबेस फ़ोल्डर के अंतर्गत postgresql.conf
में पाई जा सकती हैं। विशेष रूप से इन दो:
unix_socket_group
unix_socket_permissions
आप पा सकते हैं कि _postgres
खाते सर्वर को चलाने के लिए प्रयोग किया जाता है और यदि सक्रिय उपयोगकर्ता _postgres
समूह के सदस्य है सब कुछ भी सुलभ है।
dscl . -read /Groups/_postgres GroupMembership
चलाकर आप देख सकते हैं कि डिफ़ॉल्ट है कि समूह इन सदस्य हैं द्वारा: _devicemgr
_calendar
_teamsserver
_www
मैं आपके पास दो विकल्प लगता है। अपने आप को _postgres समूह में जोड़ें या launchd
कॉन्फ़िगरेशन प्लिस्ट फ़ाइल बदलें। बाद में सिर्फ सादा पाठ संपादन है ...लेकिन सुरक्षा से सावधान रहें, क्योंकि इस तरह आप जो भी मानदंड बदलते हैं उसे पूरा करने के लिए सर्वर खोलेंगे (अंतिम पैराग्राफ देखें)।
पूर्व को Server.app
या dscl
कमांड-लाइन उपयोगिता के माध्यम से किया जा सकता है। पहले विकल्प को शायद कुछ भी जोड़ने की आवश्यकता नहीं है। बस सुनिश्चित करें कि आप सिस्टम खाते देख सकते हैं (देखें -> सिस्टम खाते छुपाएं/दिखाएं)। मैं तो यह _postgres
समूह के लिए अपने उपयोगकर्ता जोड़ना चाहिए CLI जंकी की तरह कर रहा हूँ:
sudo dscl . -append /Groups/_postgres GroupMembership $USER
बेशक
करके आप अपने खाते के तहत तो चलाने क्योंकि आप के लिए आप मैक ओएस एक्स सर्वर डेटाबेस का उपयोग दे रहे हैं आपको सावधान रहना चाहिए बैक-एंड। तो या तो आपको _postgres
खाता सुरक्षित करें या अपने डेटाबेस में हेरफेर करने के लिए अलग उपयोगकर्ता बनाएं या वहां कुछ भी निजी न बचाएं।
+1, जो स्थानीय कनेक्शन के लिए भी काम करता है (शुरुआत में आगे स्लैश)। यूनिक्स-डोमेन सॉकेट का पथ ['unix_socket_directory'] द्वारा निर्धारित किया जाता है (http://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORY) 'postgresql में संपत्ति .conf'। –
'unix_socket_directory' संपत्ति खाली हो सकती है (मैंने इसे कभी नहीं देखा है), इस मामले में यह संभावित रूप से/tmp/के लिए डिफ़ॉल्ट है। – wildplasser
टिप के लिए धन्यवाद- मैं पोस्टग्रेज़ से मानक ओएस एक्स पैकेज का उपयोग कर रहा हूं, जो यूनिक्स-डोमेन सॉकेट सेटिंग बताता है। – Wells