फिक्स: psql: सर्वर से कनेक्ट नहीं हो सका: ऐसी कोई फ़ाइल या निर्देशिका नहीं



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

PostgreSQL खुद को सबसे उन्नत ओपन-सोर्स डेटाबेस एप्लिकेशन प्लेटफॉर्म के रूप में बढ़ावा देता है, और डेबियन लिनक्स में निश्चित रूप से बहुत सारे पैकेज हैं जो इसे और अधिक जटिल बनाते हैं। यदि आप डेबियन के आधार पर उबंटू सर्वर या विभिन्न उबंटू स्पिनों में से किसी के साथ भी काम कर रहे हैं, तो आप पोस्टग्रेसीक्यू के लिए पैकेज लोड कर सकते हैं। जटिलता और विकास का यह स्तर 'सर्वर से कनेक्ट नहीं हो सका' और 'ऐसी कोई फ़ाइल या निर्देशिका' चेतावनी नहीं है जो बहुत अधिक कष्टप्रद हो।



सौभाग्य से, ये आमतौर पर अनुमति की समस्याओं के साधारण मामले हैं जो इस तथ्य के कारण होते हैं कि PostgreSQL एक उपयोगकर्ता नाम चाहता है जो इन निर्देशिकाओं पर कब्जा करने के लिए पोस्टग्रेज करता है। एक साधारण कमांड लाइन ट्रिक का उपयोग करके, आप इसे लगभग तुरंत ठीक कर सकते हैं। आप पहले से ही कुछ बुनियादी नैदानिक ​​जांचों से गुजरना चाहते हैं, हालांकि, यह सुनिश्चित करने के लिए कि यह वास्तव में समस्या है जिसके खिलाफ आप उठ रहे हैं।



फिक्सिंग PostgreSQL सर्वर त्रुटियों से कनेक्ट नहीं कर सका

सबसे पहले, मैन्युअल रूप से PostgreSQL सिस्टम को पुनरारंभ करने का प्रयास करें। कभी-कभी यह चीजों को ठीक करने के लिए पर्याप्त है, और यदि नहीं तो आपको कम से कम एक त्रुटि संदेश काम करने के लिए मिलता है। संभावना से अधिक, आप केवल पोस्टग्रेज उपयोगकर्ता के रूप में psql कमांड जारी करके सिस्टम को पुनरारंभ करते हैं।



आप पा सकते हैं कि इससे सब कुछ साफ हो गया। अन्यथा, आपको एक पंक्ति मिल सकती है जिसमें लिखा है कि 'psql: सर्वर से कनेक्ट नहीं हो सका: ऐसी कोई फ़ाइल या निर्देशिका नहीं,' जिसका अर्थ है कि आपको अनुमति की समस्या है। यदि आपको यह त्रुटि संदेश प्राप्त होता है, तो आपको कुछ अन्य पाठ भी मिल जाएंगे।

सेवा की स्थिति की जाँच करें यदि आपने यह संदेश प्राप्त किया है कि मॉड्यूल लोड किए गए हैं यह सुनिश्चित करने के लिए। उन्हें होना चाहिए, लेकिन यदि वे नहीं हैं तो आप पुनः आरंभ करना चाहते हैं। यदि आपको एक संदेश मिलता है जो 'भरा हुआ: लोडेड (/lib/systemd/system/postgresql.service; सक्षम)' पढ़ता है, तो वे चल रहे हैं। प्रयत्न sudo सेवा postgresql पुनरारंभ बस एक संक्षिप्त पुनरारंभ करने के लिए और देखें कि क्या कुछ भी ठीक करता है। यह आमतौर पर नहीं होता है, लेकिन यह एक कोशिश के लायक हो सकता है।




यह मानते हुए कि यह मदद नहीं की है, त्रुटियों के लिए th e PostgreSQL लॉग के अंदर एक नज़र है। यदि आप पैकेज त्रुटियों के बारे में कुछ नहीं पाते हैं, तो आप SQL मॉड्यूल में से एक को याद कर रहे हैं। यह आमतौर पर इन समस्याओं का कारण नहीं है, लेकिन यह निश्चित रूप से कम से कम एक बार देखने के लिए चोट नहीं पहुंचा सकता है। संभावना से अधिक, आप वास्तव में कुछ ऐसा करेंगे जो आपको चेतावनी देता है कि 'अनुमतियाँ u = rwx (0700) होनी चाहिए' और

हालांकि, 'डेटा निर्देशिका' /var/lib/postgresql/9.6/main 'में समूह या विश्व पहुंच है', हालाँकि आप एक भिन्न संस्करण संख्या देख सकते हैं जिसके आधार पर आप जिस SQL ​​सर्वर पर चल रहे हैं।

ऐसा इसलिए है क्योंकि डेबियन और इसी तरह के वितरण की उम्मीद है कि उपयोगकर्ता और समूह इन निर्देशिकाओं को 0700 अनुमतियों के साथ नियंत्रित करते हैं और सुरक्षा के लिए 0600 अनुमतियों के माध्यम से सभी फाइलें। आपको केवल अनुमतियाँ ठीक करने के लिए टर्मिनल पर निम्न कमांड चलाना है:

sudo chown -R postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -R u = rwX, go = /var/lib/postgresql/9.6/

ध्यान रखें कि एक ऊपरी-मामला X होना चाहिए और आप जिस सामान्य तरीके से इन फ़ाइल अनुमति विकल्पों को सेट करना चाहते हैं, उसके विशिष्ट तरीके के कारण शायद आप अधिक सामान्य लोअर-केस x नहीं हैं। जबकि आपको ऐसा करने के लिए रूट एक्सेस की आवश्यकता होती है, उन दो सूडो चिह्नों का समावेश पर्याप्त होना चाहिए जो नियमित उपयोगकर्ता के रूप में चलने पर अपने आप को उचित अनुमति देने के लिए पर्याप्त हों। यह उबंटू के बाद से महत्वपूर्ण है और विभिन्न लिनक्स कार्यान्वयन उबंटू हैश से मुख्य रूट खाते से बाहर निकलते हैं, इसलिए आपको इस तरह से काम करने की आवश्यकता है।

एक बार जब यह कमांड पूरी हो जाती है, तो आप सेवा को फिर से शुरू कर सकते हैं sudo सेवा postgresql पुनरारंभ टर्मिनल से और आपको इस समय कोई त्रुटि नहीं होनी चाहिए। यदि आप लॉग पर एक नज़र डालते थे, तो उन अनुमतियों की समस्याओं के बारे में चेतावनियाँ अब भी नहीं होनी चाहिए।

यह एक त्रुटि है जो काफी विशिष्ट परिस्थितियों के परिणाम के रूप में होती है, इसलिए आपको इसे फिर से अनुभव नहीं करना चाहिए क्योंकि आपने इसे पहली बार सही किया है बशर्ते कि आप पोस्टग्रेक्यूएल निर्देशिकाओं की अनुमति हेरफेर को मैन्युअल रूप से शामिल करने की कोशिश न करें। ऐसी कोई भी स्थिति नहीं है जहाँ यह वास्तव में आवश्यक हो, पहली जगह में इस समस्या को ठीक करने के बाहर।

3 मिनट पढ़ा