Postgresql: उपयोगकर्ता के लिए पासवर्ड प्रमाणीकरण विफल "पोस्टग्रेज"


431

मैंने PostgreSQL 8.4, Postgres क्लाइंट और Pgadmin 3 स्थापित किया है। प्रमाणीकरण क्लाइंट और Pgadmin दोनों के लिए उपयोगकर्ता "postgres" के लिए प्रमाणीकरण विफल रहा। मैंने उपयोगकर्ता को "पोस्टग्रेज" और पासवर्ड "पोस्टग्रेज" के रूप में टाइप किया है, क्योंकि यह पहले काम करता था। लेकिन अब प्रमाणीकरण विफल है। मैंने इस समस्या के बिना कुछ समय पहले किया था। मुझे क्या करना चाहिए? और क्या होता है?

psql -U postgres -h localhost -W
Password for user postgres: 
psql: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"

1
मेरे मामले में कनेक्शन विफल हो गया है क्योंकि पासवर्ड बहुत जटिल है ...
JJD

3
इस पृष्ठ के नीचे सभी तरह से पढ़ना सुनिश्चित करें। मुझे यह काम पाने के लिए कई काम करने पड़े। सबसे पहले, ALTERचरण , फिर मेरी pg_hba.confफ़ाइल को संपादित करना , फिर पोस्टग्रेज को फिर से शुरू करना
एलक्रोबिस


यह भी सुनिश्चित करें कि आपके पास दो पोस्टग्रैज इंस्टेंस नहीं चल रहे हैं: एक विंडोज पर, एक डॉकर में। डॉकर ने मुझे सूचित नहीं किया कि बंदरगाह पहले ही ले लिया गया था। इसलिए, विंडोज मशीन से जुड़ा टूल पोस्टग्रेज करता है, जबकि डॉकर पोस्टर्स में, सब कुछ ठीक था।
कोपरपॉप

जवाबों:


750

अगर मुझे सही से याद है कि उपयोगकर्ता के postgresपास डिफ़ॉल्ट रूप से उबंटू पर कोई डीबी पासवर्ड सेट नहीं है । इसका मतलब है, कि आप केवल postgres OS उपयोगकर्ता खाते का उपयोग करके उस खाते में प्रवेश कर सकते हैं।

यह मानते हुए, कि आपके पास rootउस बॉक्स पर पहुंच है जो आप कर सकते हैं:

sudo -u postgres psql

यदि वह database "postgres" does not existsत्रुटि से विफल होता है , तो आप उबंटू या डेबियन सर्वर पर अधिक संभावना नहीं हैं :-) इस मामले में बस template1कमांड में जोड़ें :

sudo -u postgres psql template1

यदि उन आदेशों में से कोई भी त्रुटि के साथ विफल हो जाता है, psql: FATAL: password authentication failed for user "postgres"तो फ़ाइल की जांच करें /etc/postgresql/8.4/main/pg_hba.conf: पहली गैर-टिप्पणी लाइन के रूप में इस तरह की एक पंक्ति होनी चाहिए:

local   all         postgres                          ident

PostgreSQL के नए संस्करणों के लिए identवास्तव में हो सकता है peer। वह भी ठीक है।

psqlशेल के अंदर आप DB उपयोगकर्ता को postgres एक पासवर्ड दे सकते हैं:

ALTER USER postgres PASSWORD 'newPassword';

आप psqlशेल टाइप करके CtrlDया कमांड के साथ छोड़ सकते हैं \q

अब आपको pgAdmin को DB सुपरयुसर के लिए एक वैध पासवर्ड देने में सक्षम होना चाहिए और यह खुश भी होगा। :-)


यह बेहतर है, धन्यवाद! psql काम करता है। लेकिन अभी भी pgadmin3 के साथ समस्या है - यह मुझसे मेरे सिस्टम रूट उपयोगकर्ता के लिए एक पासवर्ड पूछा है। (मेरे लिए अजीब है) pg_hba.conf जैसा आप कहें।
I159

मैं 'कंसोल' का उपयोग करके कंसोल से बाहर निकलना चाहूंगा। मुझे खोजने के लिए कुछ समय लगा :) :)
hakunin

2
ध्यान दें, कि pg_hba.conf के पास identकाम करने के लिए पहले चरणों के लिए उपयोगकर्ता द्वारा निर्धारित पोस्टग्रेज होना चाहिए । यदि आप इसे पहले से ही md5 या कुछ और के लिए सेट करते हैं, तो आप ऑटो-लॉगिन नहीं कर पाएंगे।
सेरिन

80
बहुत अच्छा लगा। अन्य नए उपयोगकर्ताओं के लिए, ALTER USER लाइन के अंत में SEMICOLON को न भूलें।
इसकी लताएँ

3
@itsols आपने कहा: "बहुत अच्छा है। अन्य नए उपयोगकर्ताओं के लिए, ALTER USER लाइन के अंत में SEMICOLON को न भूलें" ... आपने सिर्फ चार घंटे का समय समाप्त कर दिया है !! मैं इस समय बहुत बेवकूफ और आभारी महसूस करता हूं। :
फ्रोजनजिम

148

कर्मचारियों की प्रतिक्रिया सही है, लेकिन अगर आप आगे स्वचालित करना चाहते हैं तो कर सकते हैं:

$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"

किया हुआ! आपने User = postgres और password = postgres को सेव किया।

यदि आपके पास उपयोगकर्ता के लिए कोई पासवर्ड नहीं है तो पोस्ट ubuntu do:

$ sudo passwd postgres


अगर आपके पासवर्ड में '!' जैसे दिलचस्प अक्षर हैं तो सावधान!
ब्रायन पीटरसन

45

यह निराशाजनक था, उपर्युक्त अधिकांश उत्तर सही हैं, लेकिन वे उल्लेख करने में विफल हैं कि आपको pg_hba.conf फ़ाइल में परिवर्तन होने से पहले डेटाबेस सेवा को पुनः आरंभ करना होगा।

इसलिए यदि आप ऊपर बताए अनुसार बदलाव करते हैं:

local all postgres ident

फिर रूट के रूप में पुनरारंभ करें (सेंटोस पर अपनी सेवा सेवा postgresql-9.2 पुनरारंभ की तरह कुछ) अब आप db को एक्सेस करने में सक्षम होना चाहिए क्योंकि उपयोगकर्ता पोस्टग्रेज करता है

$psql
psql (9.2.4)
Type "help" for help.

postgres=# 

आशा है कि यह नए उपयोगकर्ताओं के लिए जानकारी जोड़ता है


26
Ubuntu के प्रकार पर: sudo service postgresql restart
एन किल्ज़र

4
RHEL7 उपयोग के लिएsudo systemctl restart postgresql.service
स्पेसल

1
मैक के बारे में क्या?
ऑस्टिन

1
मैक के लिए, इस सवाल पर SO stackoverflow.com/questions/7975556/…
रोहित नंदकुमार

धन्यवाद मिगुएल। मैंने मैन्युअल रूप से पासवर्ड cahnged किया है, और मेरे pgAdmin ने डेटाबेस से तब तक कनेक्ट नहीं किया जब तक मैं पोस्टग्रेज सर्वर को पुनरारंभ नहीं करता।
उस्तिन

20

जैसे के साथ pg_hba.conf फ़ाइल संपादित करें sudo emacs /etc/postgresql/9.3/main/pg_hba.conf

सभी प्रमाणीकरण विधियों को बदलें trust। "पोस्टग्रेज" उपयोगकर्ता के लिए यूनिक्स पासवर्ड बदलें। सर्वर को पुनरारंभ करें। लॉगिन करें psql -h localhost -U postgresऔर बस सेट यूनिक्स पासवर्ड का उपयोग करें। यदि यह काम करता है तो आप डिफ़ॉल्ट मानों के लिए pg_hba.conf फ़ाइल को फिर से सेट कर सकते हैं।


1
यदि आप पूरी तरह से फंस जाते हैं, तो यह एकमात्र गारंटीकृत तरीका है। ट्रस्ट करने के लिए सभी तरीकों को बदलें, डीबी को पुनरारंभ करें, फिर रूट के रूप में:, sudo su - postgresअगले सेट / फिक्स / अनसेट पासवर्ड को पोस्टग्रैब्स डीबी के लिए (और शेल में, यदि आवश्यक हो), तो सुरक्षित md5या identविधियों को पुनर्स्थापित करें और फिर से शुरू करें ताकि मान चिपक जाएं। वैसे, Cent / RedHat 9.4 पर फ़ाइल स्थित है:/var/lib/pgsql/9.4/data/pg_hba.conf
PapaK

17

उन लोगों के लिए जो पहली बार इसका उपयोग कर रहे हैं और उन्हें पासवर्ड के बारे में कोई जानकारी नहीं है कि वे नीचे दिए गए चरणों का पालन कर सकते हैं (यह मानते हुए कि आप ubuntu पर हैं):

  1. फ़ाइल pg_hba.conf को खोलें/etc/postgresql/9.x/main

     sudo vi pg_hba.conf 

    2. नीचे पंक्ति से बाहर निकलें

     local   all             postgres                                peer

    सेवा

     local   all             postgres                                trust
  2. सर्वर को पुनरारंभ करें

      sudo service postgresql restart
  3. अंत में आप पासवर्ड की आवश्यकता के बिना लॉगिन कर सकते हैं जैसा कि चित्र में दिखाया गया हैअंत में आप पासवर्ड की आवश्यकता के बिना लॉगिन कर सकते हैं जैसा कि चित्र में दिखाया गया है

अधिक जानकारी के लिए यहां देखें


12

यदि आप उपयोगकर्ता के रूप में पोस्टग्रेज शेल को लॉग इन करने की कोशिश कर रहे हैं, तो आप निम्न कमांड का उपयोग कर सकते हैं।

उपयोगकर्ता को पोस्टग्रेज करने के लिए स्विच करें

# su - postgres

psql में लॉगिन करें

# psql

उम्मीद है की वो मदद करदे


3
su - postgresउबंटू 16.04 पर पॉज़रेस्कल 9.5 पर पासवर्ड के लिए पूछता है
प्रशांत चंद्र

3
su - postgresवह आदेश है जो आधिकारिक फेडोरा प्रलेखन का सुझाव देता है , लेकिन मुझे भी पासवर्ड प्रॉम्प्ट मिलता है। यह जानने के लिए कि मैंने इस ईमेल फोरम का अनुसरण किया है, जो यहां दिए गए उत्तर के समान कमांड का उपयोग करता है sudo -u postgres psql:। Init को न भूलें और डेटाबेस सर्वर को शुरू करें।
ic9797

11

-W पैरामीटर का उपयोग नहीं करने का प्रयास करें और पासवर्ड को खाली छोड़ दें। कभी-कभी उपयोगकर्ता बिना पासवर्ड के बनाया जाता है।

अगर वह पासवर्ड रीसेट नहीं करता है। इसे करने के कई तरीके हैं, लेकिन यह कई प्रणालियों पर काम करता है:

$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';

7

अंगूठे के एक नियम के रूप में: आप कभी भी पोस्टर्स के लिए एक पासवर्ड सेट करें

यदि आपको pgAdmin से सुपरयुसर एक्सेस की आवश्यकता है, तो एक और सुपरयुसर बनाएं। इस तरह, अगर उस सुपरयुसर के लिए क्रेडेंशियल्स से समझौता किया जाता है, तो आप हमेशा वास्तविक डेटाबेस होस्ट में ssh कर सकते हैं और मैन्युअल रूप से सुपरयूज़र को हटा सकते हैं

sudo -u postgres -c "DROP ROLE superuser;"

1
अंगूठे के इस नियम का कारण क्या है?
गर्सहोम

2
ताकि आप कभी भी अपने सभी सुपरसर्स को कंफर्म न कर सकें।
ardilgulez

1
पोस्टग्रेज के लिए पासवर्ड सेट करने से सभी सुपरसर्स को समझौता करने की ओर कैसे अग्रसर होना चाहिए?
गेरशोम

4
पासवर्ड सेट करने से सभी सुपरयूज़रों के बीच समझौता नहीं होता है, लेकिन पासवर्ड सेट करने की गारंटी नहीं होगी कि आपने कभी भी सभी सुपरयूज़रों से समझौता नहीं किया होगा। कारण यह है: जब आप पासवर्ड सेट नहीं करते हैं, तो उपयोगकर्ता को पोस्ट करने के लिए किसी भी पासवर्ड लॉगिन प्रयास से इनकार कर दिया जाएगा, जबकि आप अभी भी इसे खुद पर विश्वास करके उपयोग कर सकते हैं।
ardilgulez

7

एक बार जब आप अपने पोस्टग्रेज शेल में हों, तो इस कमांड को दर्ज करें

postgres=# \password postgres

इस कमांड को दर्ज करने के बाद आपको अपना पासवर्ड सेट करने के लिए कहा जाएगा, बस पासवर्ड सेट करें और फिर कोशिश करें।


3

जब आप postgresql स्थापित करते हैं तो उपयोगकर्ता के पोस्टग्रे के लिए कोई पासवर्ड सेट नहीं होता है, आपको चेक द्वारा इसे Unix पर स्पष्ट रूप से सेट करना होगा:

sudo passwd postgres

यह आपके sudo पासवर्ड से पूछेगा और फिर नए पोस्टग्रेज़ यूजर पासवर्ड के लिए आपको प्रोमोट करेगा। स्रोत


0

मैं बस यह जोड़ना चाहता था कि यदि आपका पासवर्ड समाप्त हो गया है, तो आपको यह भी जांचना चाहिए।

देखें विवरण के लिए पासवर्ड प्रमाणीकरण विफल हो जाता है।


1
कृपया कुछ विवरण और सारांश लिखें कि भविष्य में लिंक मौजूद नहीं होने की स्थिति में वह लिंक क्या प्रदान करता है। अन्यथा यह केवल निम्न-गुणवत्ता / लिंक के रूप में चिह्नित किए जाने की संभावना है।
टैनर

मैं इस बारे में पढ़ा होगा: meta.stackexchange.com/questions/8231/…
Tanner

0

यहां कुछ संयोजन दिए गए हैं, जिन्हें मैंने लॉगिन करने की कोशिश की है:

# login via user foo
psql -Ufoo -h localhost

sudo -u postgres psql postgres

# user foo login to postgres db
psql -Ufoo -h localhost -d postgres

0

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। उबंटू को सुपरसुअर के लिए किसी भी पासवर्ड के साथ कंसोल में लॉग इन किया गया था। सिवाय इसके कि जब मैं pshl लाइन कमांड में -h लोकलहोस्ट से जुड़ा हूं।

मैंने यह भी देखा कि "लोकलहोस्ट: 8080 / MyJSPSiteLogIn" - दिखाया गया: घातक: उपयोगकर्ता "उपयोगकर्ता" के साथ ऑटेंटिकेशन एरर।

pg_hba.conf ठीक था।

मैंने नोट किया कि एक ही सेवा में चलने वाले पोस्टग्रेज के दो संस्करण थे।

हल किया - inutil संस्करण की स्थापना रद्द करना।


0

मैंने इसी तरह के मुद्दे का सामना किया था। किसी भी डेटाबेस तक पहुँचने के दौरान मुझे पासवर्ड को अपडेट करने के बाद प्रॉम्प्ट हो रहा था "पासवर्ड प्रमाणीकरण उपयोगकर्ता के लिए विफल" पोस्टग्रेज "" पीजीएडमिन में


समाधान:

  1. सर्वर को शट डाउन करें
  2. पगडंडियों को फिर से चलाना
  3. pgadmin पासवर्ड मांगेगा।
  4. कृपया उल्लेखित उपयोगकर्ता का वर्तमान पासवर्ड दर्ज करें

आशा है कि यह आपके मुद्दे को हल करेगा

यहां छवि विवरण दर्ज करें


-1

मुझे उम्मीद है कि इससे आपको समय कम मिलेगा। आप bellow कमांड का उपयोग करके postgres sql का पासवर्ड बदल सकते हैं।

आदेश

सुदो -ु पद psql

और आगे आप पासवर्ड अपडेट कर सकते हैं

आदेश

ऑल्टर यूजर पासवर्ड 'Your_NEW_PASSWORD' को पोस्ट करता है;


1
आपके उत्तर में बस जानकारी है, जो पहले ही जोड़ी जा चुकी है: stackoverflow.com/a/7696398/8283469
L. Guthardt
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.