भूल गए PostgreSQL विंडोज पासवर्ड


31

आज सुबह मैं अपने विंडोज 7 प्रोफेशनल डेस्कटॉप पर PostgreSQL डेटाबेस को जोड़ने की कोशिश कर रहा हूं।

डिफ़ॉल्ट मान 'पोस्टग्रैज' है, लेकिन निश्चित रूप से मैं भूल गया कि मैंने मूल रूप से इसे स्थापित करने के दौरान मैंने किस पासवर्ड का उपयोग किया था।

मैंने googled और अपना पासवर्ड रीसेट करने से संबंधित पोस्ट पाया है । मैंने चरणों का पालन किया, लेकिन अंतिम परिणाम थोड़ा अलग है तो पोस्ट में उल्लेख किया गया है। मैंनें इस्तेमाल किया-

net user postgres postgres

मेरे डेटाबेस के लिए पासवर्ड को रीसेट करने के लिए लेकिन एक सफल संदेश के बजाय मुझे मिल रहा है:

"सिस्टम त्रुटि 5 हुई है। प्रवेश निषेध है।"

सिस्टम में गड़बड़ी। मैं इस त्रुटि से कैसे बचूं और पासवर्ड रीसेट करूं?

जवाबों:


33

(ध्यान दें: इसमें से बहुत कुछ PostgreSQL 9.2 या उससे अधिक EDB इंस्टालर से उपयोग करने वाले पाठकों के लिए प्रासंगिक नहीं है, जो अब उपयोग करते हुए एक बहुत ही सरल डिफ़ॉल्ट इंस्टॉल है NETWORK SERVICE, हालांकि आप अभी भी अन्य खातों को कॉन्फ़िगर कर सकते हैं)


मैंने net user postgres postgres अपने डेटाबेस के लिए पासवर्ड रीसेट करने के लिए उपयोग किया है, लेकिन एक सफल संदेश के बजाय मुझे मिल रहा है"System error 5 has occurred. Access is denied."

आपने सेवा खाता पासवर्ड रीसेट (या रीसेट करने का प्रयास) किया है। PostgreSQL सुरक्षा कारणों से प्रशासक के रूप में नहीं चलेगा और इंस्टॉलर आमतौर पर PostgreSQL 9.1 और पुराने 1 में "पोस्टग्रेज" उपयोगकर्ता खाते के साथ इसे सेट करता है । विंडोज पर आप रजिस्ट्री में उपयोगकर्ता के पासवर्ड को बचाने के बिना एक उपयोगकर्ता के रूप में एक सेवा शुरू नहीं कर सकते हैं, इसलिए यही इंस्टॉलर करता है।

यदि आप Windows उपयोगकर्ता खाते के लिए पासवर्ड बदलते हैं postgres, तो PostgreSQL सेवा अब शुरू नहीं हो सकती है। तो ऐसा न करें, आपको अपडेट किए गए पासवर्ड को संग्रहीत करने के लिए सेवा कॉन्फ़िगरेशन को ठीक करना होगा।

शुक्र है कि मुझे लगता है कि एक और गलती ने आपको ऐसा करने से रोक दिया। ऐसा लगता है कि आप बिना अनधिकृत विंडोज उपयोगकर्ता खाते या UAC के साथ मशीन पर "Run as Administrator" का उपयोग किए बिना अपना कमांड प्रॉम्प्ट चला रहे हैं, इसलिए यह postgresउपयोगकर्ता के लिए पासवर्ड बदलने के लिए आवश्यक एक्सेस अनुमतियों के साथ नहीं चल रहा है ।

इससे पहले कि आप उस पासवर्ड को बदलने की कोशिश करें, सुनिश्चित करें कि यह वास्तव में आप क्या करना चाहते हैं। आप यहां क्या समस्या हल करने का प्रयास कर रहे हैं? क्या आप एक डेटाबेस अपडेट या कुछ और स्थापित करने का प्रयास कर रहे हैं जो postgresविंडोज उपयोगकर्ता के लिए पासवर्ड मांग रहा है ?

सबसे अधिक संभावना है कि आप डेटाबेस में लॉग इन करने का प्रयास कर रहे हैं। उसके लिए, आप डेटाबेस में संग्रहीत स्व (दुर्भाग्य से पूरी तरह से असंबंधित) पासवर्ड का उपयोग करते हैं। चूँकि आप इसे खो चुके / भूल चुके हैं, इसलिए आपको इसे रीसेट करना होगा:

  • अपने pg_hba.conf, आमतौर पर में खोजेंC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
  • यदि आवश्यक हो, तो उस पर अनुमतियाँ सेट करें ताकि आप इसे संशोधित कर सकें; आपका उपयोगकर्ता खाता तब तक ऐसा करने में सक्षम नहीं हो सकता है जब तक कि आप अपने आप को एक व्यवस्थापक ओवरराइड का उपयोग करके सही देने के लिए गुण संवाद में सुरक्षा टैब का उपयोग नहीं करते हैं। वैकल्पिक रूप से, अपने प्रारंभ मेनू में नोटपैड / नोटपैड ++ ढूंढें, राइट क्लिक करें, "रन एज एडमिनिस्ट्रेटर" चुनें, फिर pg_hba.confउस तरह से खोलने के लिए फ़ाइल-> ओपन का उपयोग करें ।
  • होस्ट "127.0.0.1/32" पर "ट्रस्ट" के लिए उपयोगकर्ता "पोस्टग्रेज" के लिए "होस्ट" लाइन सेट करने के लिए इसे संपादित करें। यदि यह नहीं है तो आप लाइन जोड़ सकते हैं; बस डालें:

    host all postgres 127.0.0.1/32 trust
    host all postgres ::1/128      trust # if IPv6 is in use

    किसी भी अन्य लाइनों से पहले । (आप टिप्पणियों, लाइनों के साथ शुरुआत को अनदेखा कर सकते हैं #)।

  • सेवा नियंत्रण कक्ष से PostgreSQL सेवा को पुनरारंभ करें (प्रारंभ-> रन-> services.msc)

  • psql या PgAdmin-III या जो भी आप चाहें का उपयोग करके कनेक्ट करें
  • ALTER USER postgres PASSWORD 'postgres'
  • आपके द्वारा जोड़ी गई लाइन को हटा दें pg_hba.confया इसे वापस बदल दें
  • PostgreSQL फिर से शुरू करें।

देखें: मैं विंडोज पर PostgreSQL के लिए पोस्टग्रेज पासवर्ड कैसे रीसेट करूं?


1. 9.2 अब NETWORKSERVICEखाते का उपयोग करता है , जिसके लिए पासवर्ड की आवश्यकता नहीं होती है, इसलिए यह समस्या दूर हो जाती है


8
आपको एक IP6 प्रविष्टि की भी आवश्यकता हो सकती है: "होस्ट सभी पोस्टग्रेट्स :: 1/128 ट्रस्ट"
टेड इलियट

फिर भी मुझे मेरे dev मशीन पर पोस्टरेकस 9.6 के साथ परेशानी से बाहर निकाला। यह न
समझें

@darwindave आपके इंस्टॉल पर निर्भर करता है। यदि आप NETWORKSERVICEउपयोगकर्ता खाते का उपयोग करने के लिए स्थापित हैं, तो कोई खाता खाता पासवर्ड नहीं है। यदि आपने एक समर्पित सेवा खाते का उपयोग करने के लिए स्थापित किया है जैसे postgresया डोमेन खाता, तो यह मदद कर सकता है।
क्रेग रिंगर

क्या आप इस उत्तर को 9.2+ के साथ अद्यतित कर सकते हैं और साथ ही साथ विंडोज के लिए दोनों तरीके दिखा सकते हैं?
इवान कैरोल

1
@EvanCarroll यदि आप उपयोग कर रहे NETWORK SERVICEहैं तो रीसेट करने के लिए कोई पासवर्ड नहीं है। यदि आप किसी भिन्न खाते का उपयोग करते हुए 9.2+ पर स्थापित हैं, तो वही जानकारी लागू होती है। और पोस्टग्रेज सुपरसुअर डेटाबेस खाता पासवर्ड को रीसेट करने के आसपास के हिस्से में कोई बदलाव नहीं हुआ है । इसलिए वास्तव में किसी बदलाव की जरूरत नहीं है।
क्रेग रिंगर

3

आपको अपने सिस्टम (विंडोज) उपयोगकर्ता के बीच "पोस्टग्रेज" और उसी नाम के डेटाबेस उपयोगकर्ता के बीच अंतर करने की आवश्यकता है।

अपनी pg_hba.conf फ़ाइल खोजें - यह PostgreSQL सर्वर तक पहुँच को नियंत्रित करता है। आपको प्रशासक अधिकारों के साथ एक उपयोगकर्ता के रूप में इसे संपादित करने की आवश्यकता होगी। उन पंक्तियों की तलाश करें जो उपयोगकर्ता "पोस्टग्रेज" का उल्लेख करती हैं और अस्थायी रूप से "ट्रस्ट" पर मोड सेट करती हैं। Postgresql को पुनरारंभ करें और फिर आपको पासवर्ड के बिना कनेक्ट करने में सक्षम होना चाहिए। पासवर्ड रीसेट करें, फिर फ़ाइल को उसकी मूल सेटिंग्स पर पुनर्स्थापित करें और PostgreSQL को पुनरारंभ करें।

मैनुअल में प्रमाणीकरण विधियों और pg_hba.conf फ़ाइल पर विवरण है ।


0

अगर कोई और इस समस्या का सामना करता है, तो भी pgAdmin का उपयोग करते हुए, मेरा सुझाव है कि आप इस पर एक नज़र डालें: http://www.homebrewandtechnology.com/blog/graphicallychangepostgresadminpassword


3
आप अपने पोस्ट से सीधे लिंक किए गए लेख के मुख्य बिंदुओं को जोड़ना चाह सकते हैं, अन्यथा यह उत्तर तब बेकार हो जाएगा जब ( यदि नहीं ) लिंक बासी हो जाता है।
17:05
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.