PostgreSQL त्रुटि: घातक: भूमिका "उपयोगकर्ता नाम" मौजूद नहीं है




authentication (7)

मैं अपना पोस्टग्रेएसक्यूएल 9.1 स्थापित कर रहा हूं। मैं PostgreSQL के साथ कुछ भी नहीं कर सकता: बनाया नहीं जा सकता, createuser नहीं कर सकता; सभी ऑपरेशन त्रुटि संदेश लौटाते हैं

Fatal: role h9uest does not exist

h9uest मेरा खाता नाम है, और मैं इस खाते के तहत PostgreSQL 9.1 sudo apt-get install
root खाते के लिए समान त्रुटि बनी रहती है।


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

sudo su - postgres

या अधिक आधुनिक रूप:

sudo -u postgres -i

जैसा here और here अनुशंसित here

फिर पुन: प्रयास करें। सिस्टम उपयोगकर्ता postgres रूप में ऑपरेटिंग के साथ किए जाने पर exit टाइप करें।

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

मैनुअल में डेटाबेस भूमिकाओं और क्लाइंट प्रमाणीकरण के बारे में पढ़ें।


इन चरणों का पालन करें और यह आपके लिए काम करेगा:

  1. msfconsole चलाएं
  2. db_console टाइप करें
  3. कुछ जानकारी आपको दिखाई जाएगी कि आपको वह जानकारी चुना गया है जो आपको बनाने के लिए कहता है: db_connect user:[email protected]:port.../database क्षमा करें मुझे यह याद नहीं है लेकिन यह ऐसा है और फिर उपयोगकर्ता और पासवर्ड को प्रतिस्थापित करें और मेजबान और डेटाबेस में शामिल जानकारी के साथ डेटाबेस.एमएलएल में: /usr/share/metasploit-framework/config
  4. तुम देखोगे। पृष्ठभूमि में मॉडल कैश का पुनर्निर्माण।
  5. अद्यतन के बाद apt-get update && apt-get अपग्रेड टाइप करें टर्मिनल और दोपहर के भोजन msfconsole को पुनरारंभ करें और यह काम करता है कि आप msfconsole: msf>db_status में टाइप करके इसे देख सकते हैं msfconsole: msf>db_status आप देखेंगे कि यह कनेक्ट है।

कार्य विधि,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer यहां सहकर्मी को विश्वास में बदलते हैं
  3. पुनरारंभ करें, sudo service postgresql restart

  4. अब कोशिश करें, psql -U postgres



सब कुछ अनइंस्टॉल करना और Postgres.app रखना:

brew cask uninstall postgres
brew uninstall postgres
brew cask install postgres
rm -rf /Applications/Postgres93.app/
# shutdown any postgres instance
# open postgres.app -> "Initialize"

मैं PostgreSQL 9.6 चाहता था


स्थानीय उपयोगकर्ता प्रॉम्प्ट में, रूट उपयोगकर्ता प्रॉम्प्ट नहीं, टाइप करें

sudo -u postgres createuser <local username>

फिर स्थानीय उपयोगकर्ता के लिए पासवर्ड दर्ज करें।

फिर "कमांड 'उपयोगकर्ता नाम' उत्पन्न नहीं हुआ पिछला कमांड दर्ज करें।"

ऊपर कदम मेरे लिए समस्या हल हो गई। यदि नहीं, तो उपर्युक्त चरणों के लिए टर्मिनल संदेश भेजें।


sudo su - postgres

psql template1

विशेषाधिकार के साथ "सुपरसियर" के रूप में pgsql पर भूमिका निभाते हुए

CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;

फिर उपयोगकर्ता बनाएं

CREATE USER username; 
eg. CREATE USER demo;

उपयोगकर्ता को विशेषाधिकार सौंपें

GRANT ROOT TO username;

और उसके बाद उस उपयोगकर्ता को लॉगिन सक्षम करें, ताकि आप सामान्य $ टर्मिनल से उदाहरण: psql template1 चला सकें:

ALTER ROLE username WITH LOGIN;






authentication