मैं उस पासवर्ड को भूल गया जो मैंने पोस्टग्रेज इंस्टॉलेशन के दौरान दर्ज किया था


205

मैं या तो भूल गया या गलत (स्थापना के दौरान) पोस्टग्रेज के डिफ़ॉल्ट उपयोगकर्ता के लिए पासवर्ड। मैं इसे चलाने में सक्षम नहीं हो सकता हूं और मुझे निम्नलिखित त्रुटि मिलती है:

psql: FATAL:  password authentication failed for user "hisham"
hisham-agil: hisham$ psql 

क्या पासवर्ड रीसेट करने के लिए वैसे भी है या मैं सुपरसुसर विशेषाधिकारों के साथ एक नया उपयोगकर्ता कैसे बना सकता हूं?

मैं पोस्टग्रेज के लिए नया हूं और इसे पहली बार स्थापित किया है। मैं इसे रेल के साथ उपयोग करने की कोशिश कर रहा हूं और मैं मैक ओएस एक्स लॉयन चला रहा हूं।


1
मैं अभी तक जवाब पर टिप्पणी नहीं कर सकता, इसलिए इसे इस तरह से करना होगा। मैंने वही किया जो सयानगर्ल ने कहा था, हालाँकि मुझे अभी भी एक पासवर्ड दर्ज करने की आवश्यकता थी, जिसे लॉग इन करने के लिए 'पोस्टग्रेज' किया गया था, तब मैं पासवर्ड रीसेट कर सकता था
पास्केल

जवाबों:


359
  1. फ़ाइल ढूंढें pg_hba.conf- यह स्थित हो सकती है, उदाहरण के लिए /etc/postgresql-9.1/pg_hba.conf

    cd /etc/postgresql-9.1/

  2. इसे वापस लें

    cp pg_hba.conf pg_hba.conf-backup

  3. निम्न पंक्ति रखें (या तो पहली अपूर्ण पंक्ति, या केवल एक के रूप में):

नीचे (स्थानीय और मेज़बान) की सभी घटनाओं के लिए, अनुत्तर प्रतिकृति अनुभाग यदि आपके पास कोई ऐसा नहीं है जिसे अनुसरण के रूप में बदलना है, तो कोई एमडी 5 या पीयर ऑटिहैक्शन मौजूद नहीं होना चाहिए।

local  all   all   trust
  1. अपने PostgreSQL सर्वर को पुनः आरंभ करें (जैसे, लिनक्स पर :)

    sudo /etc/init.d/postgresql restart

    यदि सेवा (डेमन) लॉग फ़ाइल में रिपोर्टिंग शुरू नहीं करती है:

    स्थानीय कनेक्शन इस बिल्ड द्वारा समर्थित नहीं हैं

    आपको बदलना चाहिए

    local all all trust

    सेवा

    host all all 127.0.0.1/32 trust

  2. अब आप किसी भी उपयोगकर्ता के रूप में जुड़ सकते हैं। सुपरयुसर के रूप में कनेक्ट करें postgres(ध्यान दें, सुपरस्टार का नाम आपकी स्थापना में भिन्न हो सकता है। कुछ प्रणालियों में इसे pgsqlउदाहरण के लिए कहा जाता है । )

    psql -U postgres

    या

    psql -h 127.0.0.1 -U postgres

    (ध्यान दें कि पहले कमांड से आप हमेशा स्थानीय होस्ट से नहीं जुड़े होंगे)

  3. पासवर्ड रीसेट करें (' जब आप पोस्टग्रैट्स उपयोगकर्ता को रीसेट कर रहे हैं तो पोस्टग्रेज के साथ my_user_name बदलें' )

    ALTER USER my_user_name with password 'my_secure_password';

  4. पुराने pg_hba.confको पुनर्स्थापित करें क्योंकि यह चारों ओर रखना बहुत खतरनाक है

    cp pg_hba.conf-backup pg_hba.conf

  5. सुरक्षित के साथ चलाने के लिए, सर्वर को पुनरारंभ करें pg_hba.conf

    sudo /etc/init.d/postgresql restart

उस pg_hba फ़ाइल के बारे में आगे पढ़ना : http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html


9
और फिर शुरू करें psql? मुझे अभी भी एक पासवर्ड के लिए संकेत दिया जा रहा है, और मुझे यह नहीं पता है
CodyBugstein

4
यह जवाब मेरे लिए कारगर नहीं था, जब मैं चरण 3 करता हूं, तो सेवा शुरू नहीं होती है, मुझे पता नहीं है, शायद यह ओएस (W8) है, यह सिर्फ जीता नहीं है।
Scaramouche

3
विंडोज के लिए कोई भी?
महेश्९९९

2
ध्यान रखें कि pg_hba.conf में प्रविष्टियों का क्रम महत्वपूर्ण है। यदि आप फ़ाइल के अंत में "स्थानीय ऑल ट्रस्ट" जोड़ते हैं, तो यह आपकी अपेक्षा के अनुरूप काम नहीं करेगा, क्योंकि पिछले रिकॉर्ड पहले से मेल खाते होंगे। इसलिए उस फ़ाइल के शीर्ष पर रखें जो आपसे अपेक्षित है।
तगार

6
यदि आप इस त्रुटि के साथ खिड़कियों पर हैं, तो @SaiyanGirl के उत्तर पर स्क्रॉल करते रहें। बस मौजूदा प्रविष्टियों के METHOD कॉलम को 'ट्रस्ट' में बदल दें, फिर इसे तब बदल दें जब आप काम कर लें
sean.hudson

99

कमांड लाइन से पोस्टग्रेज से कनेक्ट करते समय, -h localhostकमांड लाइन पैरामीटर के रूप में जोड़ना न भूलें । यदि नहीं, तो पोस्टर्स PEER प्रमाणीकरण मोड का उपयोग करके कनेक्ट करने का प्रयास करेंगे।

नीचे पासवर्ड का रीसेट दिखाया गया है, पीईआर प्रमाणीकरण के साथ एक असफल लॉगिन और एक टीसीपी कनेक्शन का उपयोग करके एक सफल लॉगिन है।

# sudo -u postgres psql
could not change directory to "/root"
psql (9.1.11)
Type "help" for help.

postgres=# \password
Enter new password:
Enter it again:
postgres=# \q

विफल रहने के:

# psql -U postgres -W
Password for user postgres:
psql: FATAL:  Peer authentication failed for user "postgres"

इसके साथ काम करना -h localhost:

# psql -U postgres -W  -h localhost
Password for user postgres:
psql (9.1.11)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=#

7
"-एच" विकल्प के बारे में टिप के लिए धन्यवाद, मेरी मदद की।
Bunkerbewohner

विंडोज cmd.exe पर
अनएडेड

1
मैक के लिए सर्वश्रेष्ठ उत्तर
मुहम्मद उमर

72

pg_hba.conf( C:\Program Files\PostgreSQL\9.3\data) फ़ाइल बदल गया है के बाद से इन उत्तरों दिए गए थे। क्या मेरे लिए काम किया, Windows में, फ़ाइल को खोलने और बदलने के लिए है METHODसे md5करने के लिए trust:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

फिर, pgAdmin III का उपयोग करते हुए, मैंने बिना पासवर्ड का उपयोग किए लॉग इन किया और इसमें postgres'जाकर उपयोगकर्ता पासवर्ड बदल दियाFile -> Change Password


यह काम नहीं करता है क्योंकि PgAdmin अभी भी वर्तमान पासवर्ड के लिए पूछता है ... मैं 'विश्वास' पर रीसेट करता हूं और PgAdmin को पुनरारंभ करता हूं। फिर भी CURRENT पासवर्ड टाइप किए बिना रीसेट नहीं किया जा सकता ...
जीन बी।

1
एक बार जब आप प्रक्रिया को परिवर्तित करना trustआप का अनुसरण कर सकते इस cmd में और बदलने पासवर्ड
गिलाड ग्रीन

12

बस एक नोट, लिनक्स पर आप केवल sudo su - postgresपोस्टग्रेज उपयोगकर्ता बनने के लिए दौड़ सकते हैं और वहाँ से जो psql का उपयोग करना आवश्यक है उसे बदल सकते हैं।


3
Psql
स्नो

8
  1. फ़ाइल को संपादित करें /etc/postgresql/<version>/main/pg_hba.confऔर निम्नलिखित लाइन खोजें:

    local   all             postgres                                md5
  2. फ़ाइल को सहेजने और सहेजने के लिए लाइन को बदलें और md5अंत में बदलेंtrust

  3. Postgresql सेवा पुनः लोड करें

    $ sudo service postgresql reload
  4. यह कॉन्फ़िगरेशन फ़ाइलों को लोड करेगा। अब आप शेल postgresमें लॉग इन करके उपयोगकर्ता को संशोधित कर सकते हैंpsql

    $ psql -U postgres
  5. postgresउपयोगकर्ता का पासवर्ड अपडेट करें

    alter user postgres with password 'secure-passwd-here';
  6. संपादित करें फ़ाइल /etc/postgresql/<version>/main/pg_hba.confऔर परिवर्तन trustवापस करने के लिए md5और फ़ाइल सहेजें

  7. Postgresql सेवा पुनः लोड करें

    $ sudo service postgresql reload
  8. सत्यापित करें कि पासवर्ड परिवर्तन काम कर रहा है

    $ psql -U postgres -W

क्या विंडोज समाधान देना इतना कठिन है? हर कोई sudo के साथ Linux का उपयोग नहीं करता है। मैं इसे विंडोज पर कैसे करूंगा ??
जीन b।

7

मुझे विंडोज 10 पर बस यही समस्या आ रही थी और मेरे मामले में मुद्दा यह था कि मैं बस चल रहा था psqlऔर यह अपने विंडोज यूजरनेम ("नाथन") के साथ लॉग इन करने की कोशिश करने में डिफ़ॉल्ट था, लेकिन उस नाम के साथ कोई PostgreSQL उपयोगकर्ता नहीं था, और यह मुझे नहीं बता रहा था।

तो समाधान psql -U postgresसिर्फ चलाने के बजाय था psql, और फिर मैंने जिस पासवर्ड को इंस्टॉलेशन में दर्ज किया वह काम किया।


5

नवीनतम पोस्टग्रेज संस्करण (> 10) के लिए विंडोज उपयोगकर्ता के लिए उत्तर जोड़ना,

अपने पोस्टग्रेज इंस्टॉलेशन स्थान पर जाएं, और खोजें pg_hba.conf, आपको यह मिल जाएगा..\postgres\data\pg_hba.conf

नोटपैड के साथ उस फ़ाइल को खोलें, इस लाइन को ढूंढें,

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections: 
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
#..

Md5 से ट्रस्ट में विधि बदलें,

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections: 
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# ...

अब अपने SQL शेल (PSQL) पर जाएं और सब कुछ खाली छोड़ दें,

Server [localhost]:
Database [postgres]:
Port [8000]:
Username [postgres]: 

यह इस बार पासवर्ड नहीं मांगेगा, और आपको लॉग इन किया जाएगा,

अब इस लाइन को चलाएं, ALTER USER yourusername WITH SUPERUSER

अब आप \ q के साथ शेल छोड़ सकते हैं

फिर से फाइल pg_hba.conf पर जाएं और METHOD को ट्रस्ट से md5 में फिर से बदलें, और इसे सेव करें।

अब अपने नए उपयोगकर्ता और पासवर्ड के साथ लॉगिन करें और आप इसकी विशेषताओं के लिए \ du चेक कर सकते हैं।


1

Windows स्थापना के लिए, एक Windows उपयोगकर्ता बनाया जाता है। और "psql" पोर्ट के कनेक्शन के लिए इस उपयोगकर्ता का उपयोग करता है। यदि आप PostgreSQL उपयोगकर्ता के पासवर्ड को बदलते हैं, तो यह विंडोज एक को नहीं बदलेगा। नीचे दी गई कमांडलाइन तभी काम करती है जब आपके पास कमांडलाइन तक पहुंच हो।

इसके बजाय आप Windows GUI एप्लिकेशन "c: \ Windows \ system32 \ lusrmgr.exe" का उपयोग कर सकते हैं। यह ऐप विंडोज द्वारा बनाए गए यूजर्स को मैनेज करता है। तो अब आप पासवर्ड को संशोधित कर सकते हैं।


1

मैंने वही समस्या हल करने के लिए क्या किया था:

टर्मिनल से gedit संपादक के साथ pg_hba.conf फ़ाइल खोलें:

sudo gedit /etc/postgresql/9.5/main/pg_hba.conf

यह पासवर्ड मांगेगा। अपना व्यवस्थापक लॉगिन पासवर्ड दर्ज करें। यह फ़ाइल के साथ gedit खोलेगा। निम्नलिखित पंक्ति चिपकाएँ:

host  all   all  127.0.0.1/32  trust

ठीक नीचे -

# Database administrative login by Unix domain socket

इसे सहेजें और बंद करें। टर्मिनल को बंद करें और इसे फिर से खोलें और इस कमांड को चलाएं:

psql -U postgres

अब आप psql कंसोल में प्रवेश करेंगे। अब यह दर्ज करके पासवर्ड बदलें:

ALTER USER [your prefered user name] with password '[desired password]';

यदि यह कहता है कि उपयोगकर्ता मौजूद नहीं है तो ALTERउपयोग के बजाय CREATE

अंत में, उस निश्चित पंक्ति को हटा दें जिसे आपने pg_hba में चिपकाया है और इसे सहेजें।


0

यदि आप खिड़कियों में हैं तो आप बस चला सकते हैं

net user postgres postgres

और उपयोगकर्ता / पासवर्ड के रूप में पोस्टग्रेज / पोस्टग्रेज के साथ पोस्टग्रेज में लॉगिन करें


0

उपयोगकर्ता के घर निर्देशिका में फ़ाइल .pgpass या PGPASSFILE द्वारा संदर्भित फ़ाइल में पासवर्ड का उपयोग किया जा सकता है यदि कनेक्शन के लिए पासवर्ड की आवश्यकता होती है (और अन्यथा कोई पासवर्ड निर्दिष्ट नहीं किया गया है)। Microsoft Windows पर फ़ाइल का नाम% APPDATA% \ postgresql \ pgpass.conf है (जहाँ% APPDATA% उपयोगकर्ता के प्रोफ़ाइल में अनुप्रयोग डेटा उपनिर्देशिका को संदर्भित करता है)।

इस फ़ाइल में निम्न प्रारूप की लाइनें होनी चाहिए:

होस्टनाम: पोर्ट: डेटाबेस: उपयोगकर्ता नाम: पासवर्ड

(आप ऊपर की लाइन को कॉपी करके और इसे # से पहले करके फ़ाइल में एक रिमाइंडर टिप्पणी जोड़ सकते हैं।) पहले चार क्षेत्रों में से प्रत्येक का शाब्दिक मूल्य हो सकता है, या *, जो किसी भी चीज़ से मेल खाता हो। पहली पंक्ति से पासवर्ड फ़ील्ड जो वर्तमान कनेक्शन मापदंडों से मेल खाती है, का उपयोग किया जाएगा। (इसलिए, जब आप वाइल्डकार्ड का उपयोग कर रहे हों, तो पहले से अधिक विशिष्ट प्रविष्टियाँ डालें।) यदि किसी प्रविष्टि में समाहित होने की आवश्यकता है: या \ _, के साथ इस वर्ण को छोड़ दें। स्थानीय मशीन से आने वाले स्थानीय होस्ट का नाम टीसीपी (होस्ट नाम लोकलहोस्ट) और यूनिक्स डोमेन सॉकेट (pghost खाली या डिफ़ॉल्ट सॉकेट निर्देशिका) दोनों से मेल खाता है। स्टैंडबाय सर्वर में, प्रतिकृति का एक डेटाबेस नाम मास्टर सर्वर से किए गए प्रतिकृति कनेक्शन से मेल खाता है। डेटाबेस फ़ील्ड सीमित उपयोगिता की है क्योंकि उपयोगकर्ताओं के पास एक ही क्लस्टर में सभी डेटाबेस के लिए एक ही पासवर्ड है।

यूनिक्स प्रणालियों पर, .pg पार की अनुमति दुनिया या समूह के लिए किसी भी पहुँच को अस्वीकार करना चाहिए; कमांड chmod 0600 ~ / .pgpass द्वारा इसे प्राप्त करें। यदि अनुमतियाँ इससे कम सख्त हैं, तो फ़ाइल को अनदेखा कर दिया जाएगा। Microsoft Windows पर, यह माना जाता है कि फ़ाइल एक निर्देशिका में संग्रहीत है जो सुरक्षित है, इसलिए कोई विशेष अनुमति जांच नहीं की जाती है।


इसने मेरे लिए काम किया, जहाँ C: \ Users \ <user> \ AppData \ Roaming \ postgresql \ pgpass.conf तक पथ का विस्तार हुआ। इसके अलावा PostgreSQL सर्वर पर स्विच करना मदद करने के लिए लग रहा था।
जियोडाटा

0

यदि आप Mac os पर postgresql चला रहे हैं, तो ये आज़माएँ :

  1. Pg_hba.conf फ़ाइल संपादित करें

  2. sudo vi /Library/PostgreSQL/9.2/data/pg_hba.conf

  3. सभी उपयोगकर्ताओं के लिए "md5" विधि को फ़ाइल के निचले भाग के पास "ट्रस्ट" में बदलें

  4. सेवा का नाम खोजें

  5. ls / पुस्तकालय / LaunchDaemons

  6. Postgresql के लिए देखो

  7. Postgresql सेवा बंद करें

  8. सुडो लॉंचल स्टॉप com.edb.launchd.postgresql-9.2

  9. Postgresql सेवा प्रारंभ करें

  10. सुडो लॉन्चरल स्टार्ट कॉम। हेडब.लंच.डॉस्टग्रेसकल-9.2

  11. पोस्टग्रेज के रूप में psql सत्र प्रारंभ करें

  12. psql -U postgres

  13. ('विश्वास' सेटिंग के कारण पासवर्ड नहीं पूछना चाहिए)

  14. टाइप करके psql सेशन में पासवर्ड रीसेट करें

  15. ALTER USER पासवर्ड-सिक्योर-न्यू-पासवर्ड ’के साथ पोस्ट करता है;

  16. \ क्ष
  17. दर्ज

  18. Pg_hba.conf फ़ाइल संपादित करें

  19. इसे 'md5' पर वापस लाएँ

  20. सेवाओं को फिर से शुरू करें


-1

यह मेरे लिए खिड़कियों पर काम किया है:

C: \ Program Files \ PostgreSQL \ 9.3 \ डेटा पर pg_hba.conf फ़ाइल संपादित करें।

# IPv4 local connections: host all all 127.0.0.1/32 trust

ट्रस्ट से विधि को md5 में बदलें और विंडोज़ पर पोस्टग्रेज सेवा को फिर से शुरू करें।

उसके बाद, आप pgadmin का उपयोग करके पासवर्ड के बिना उपयोगकर्ता का उपयोग करके लॉगिन कर सकते हैं। आप फ़ाइल-> पासवर्ड बदलकर पासवर्ड बदल सकते हैं।

यदि उपयोगकर्ता द्वारा पोस्टग्रेसेज में सुपरसुसर विशेषाधिकार नहीं हैं, तो आप पासवर्ड नहीं बदल सकते। इस मामले में, सुपरयूज़र एक्सेस के साथ किसी अन्य उपयोगकर्ता (pgsql) के साथ लॉगिन करें और उपयोगकर्ताओं पर राइट क्लिक करके और गुण-> भूमिका विशेषाधिकार का चयन करके अन्य उपयोगकर्ताओं को विशेषाधिकार प्रदान करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.