पोस्टग्रैज उपयोगकर्ता मौजूद नहीं है?


91

मैंने अभी पोस्टग्रेज स्थापित किए हैं और 1-2 घंटे के लिए इसे और विभिन्न कॉन्फ़िगरेशन के साथ छेड़छाड़ कर रहा है।

मैं पोस्टग्रेज-यूजर को बदलने में असमर्थ होने पर अड़ा हुआ हूं

$ su - postgres निम्न त्रुटि उत्पन्न करता है: su: unknown login: postgres

$ sudo -u postgres psql निम्न त्रुटि उत्पन्न करता है: sudo: unknown user: postgres

ये प्रयास सामान्य उपयोगकर्ता के रूप में किए जाते हैं। उन्हें जड़ के रूप में आज़माने के समान परिणाम हैं। मैंने ओएस एक्स पर होमब्रे के माध्यम से पोस्टग्रेज स्थापित किए हैं, और मैंने निर्देशों को कई बार पढ़ा है।


क्या आप सिर्फ psql चलाने की कोशिश कर रहे हैं?
डेनियलएम

खैर, मैं उचित postgresउपयोगकर्ता के रूप में चलना चाहता हूं ।
क्रिस्टा

कुछ मैक ओएस एक्स फ्लेवर्स पर, कुछ इंस्टॉलेशन विधियों के साथ, मुझे लगता है कि उपयोगकर्ता postgres_इसके बजाय बनाया गया है । अंडरस्कोर पर ध्यान दें। इसके अलावा, क्या आप सुनिश्चित हैं कि आपने (या इंस्टॉलर) वास्तव में PostgreSQL उदाहरण बनाया है और डेटाबेस शुरू किया है?
क्रेग रिंगर

1
मैं postgresउपयोगकर्ता पर स्विच करने में असमर्थ था । postgresql-serverपैकेज स्थापित करने के बाद समस्या का समाधान किया ।
सर्जियो ser 郝海东 病 gio 法轮功 '22

जवाबों:


90

psql: मुझे अपने डिफ़ॉल्ट उपयोगकर्ता नाम के साथ लॉग करता है

psql -U postgres: मुझे उपयोगकर्ता के रूप में लॉग इन करता है

सूदो मेरे लिए जरूरी नहीं लगता।

मैं अपने OS X पोस्टग्रेज डेटाबेस के लिए Postgres.app का उपयोग करता हूं। यह सुनिश्चित करने के सिरदर्द को हटा दिया कि स्थापना काम कर रही थी और डेटाबेस सर्वर ठीक से लॉन्च किया गया था। इसे यहाँ देखें: http://postgresapp.com

संपादित करें: मेरे तर्कों के उपयोग को सही करने के लिए @Erwin Brandstetter को श्रेय।


8
मैंने ब्रू का उपयोग करके स्थापित किया और यह एक उपयोगकर्ता नहीं बना जिसका नाम पोस्टग्रेज या _पोस्टग्रेज (जहां तक ​​मैं देख सकता हूं) था, इसलिए यह मेरे लिए विफल रहा। @kangkyu समाधान बताता है और आपको मुद्दों के माध्यम से चलता है - यह मानते हुए कि आपके पास उपयोगकर्ता को पोस्टग्रेज नहीं है: psql postgresऔर psql -d postgres
नोटपैड

21

द्वारा psql --help, जब आपने डेटाबेस नाम ( -dविकल्प के बिना ) के लिए विकल्प निर्धारित नहीं किया, तो यह आपका उपयोगकर्ता नाम होगा, यदि आपने ऐसा नहीं किया -U, तो डेटाबेस उपयोगकर्ता नाम आपका उपयोगकर्ता नाम भी होगा, आदि।

लेकिन initdb(पहले डेटाबेस बनाने के लिए) यह किसी भी डेटाबेस के नाम के रूप में आपका उपयोगकर्ता नाम नहीं है। इसका एक डेटाबेस नाम है postgresडेटा संग्रहण क्षेत्र प्रारंभ होने पर पहला डेटाबेस हमेशा initdb कमांड द्वारा बनाया जाता है। इस डेटाबेस को पोस्टग्रेज कहा जाता है।

इसलिए यदि आपके पास अपने उपयोगकर्ता नाम का कोई दूसरा डेटाबेस नहीं है, तो आपको psql -d postgresकार्य करने के लिए psql कमांड के लिए करने की आवश्यकता है। और ऐसा लगता है कि यह -dडिफ़ॉल्ट रूप से विकल्प देता है , psql postgresकाम भी करता है।

यदि आपने अपने उपयोगकर्ता नाम के समान एक और डेटाबेस नाम बनाया है, (इसे साथ किया जाना चाहिए createdb) तो आप psqlकेवल आदेश दे सकते हैं । और ऐसा लगता है कि पहला डेटाबेस उपयोगकर्ता नाम आपके मशीन उपयोगकर्ता नाम के रूप में काढ़ा करता है।

psql -d <first database name> -U <first database user name>

या,

psql -d postgres -U <your machine username>
psql -d postgres

डिफ़ॉल्ट रूप से काम करेगा।


18

ओएस एक्स सिस्टम खाते के नामों को "_" के साथ उपसर्ग करता है; आप यह नहीं कहते कि आप किस OS OS का संस्करण उपयोग कर रहे हैं, लेकिन कम से कम 10.8 और 10.9 में _postgres उपयोगकर्ता एक डिफ़ॉल्ट इंस्टॉल में मौजूद है। ध्यान दें कि आप suइस खाते (रूट को छोड़कर) में सक्षम नहीं होंगे , क्योंकि इसमें पासवर्ड नहीं है। sudo -u _postgresदूसरी ओर, ठीक काम करना चाहिए।


धन्यवाद! यह वह उत्तर है जिसकी मुझे तलाश थी। क्या ऐसा कुछ है जो मैं उपयोगकर्ता को केवल "पोस्टग्रेज" के लिए नाम बदलने के लिए कर सकता हूं? उस लॉग में _postgres उपयोगकर्ता के रूप में लॉग इन करने से शिकायत होती है कि "_postgres" उपयोगकर्ता मौजूद नहीं है। मैं एक और डेटाबेस से एक बैकअप फ़ाइल के साथ एक साफ postgres इंस्टेंस को पुनर्स्थापित करने की कोशिश कर रहा हूँ
क्रिस रेयेस - वह-वह

1
@ChrisReyes सिस्टम खातों के नाम को बदलना सिस्टम घटकों को तोड़ सकता है जो उनका उपयोग करते हैं, इसलिए मैं इसके खिलाफ दृढ़ता से अनुशंसा करूंगा। आप "पोस्टग्रेज" नाम के साथ एक और उपयोगकर्ता खाता बना सकते हैं और उसका उपयोग कर सकते हैं, लेकिन अगर मैं सही समझता हूं (जो मैं नहीं कर सकता हूं), तो आप जो चला रहे हैं वह यह है कि पोस्टग्रेज डेटाबेस के भीतर उपयोगकर्ता खाते का नाम _postgres नहीं है। एआईयूआई खाते के नाम डीबी के भीतर सिस्टम खाते के नाम से अलग हैं, इसलिए "_postgres" सिस्टम खाते के तहत एक DB उदाहरण चलाने में कोई समस्या नहीं होनी चाहिए, और उस DB को "पोस्टग्रेज" डेटाबेस खाते के साथ खोलना चाहिए।
गॉर्डन डेविसन


4
psql -U postgres

Db नाम के मामले में मेरे लिए ठीक काम किया: पोस्टग्रेज और उपयोगकर्ता नाम: पोस्टग्रेज। इसलिए आपको sudo लिखने की आवश्यकता नहीं है।

और मामले में अन्य डीबी, आप कोशिश कर सकते हैं

psql -U yourdb postgres

जैसा कि यह Postgres मदद में दिया गया है:

psql [OPTION]... [DBNAME [USERNAME]]

मेरा मामला: $ psql -U postgresआउटपुट उत्पन्न करता है psql: FATAL: role "postgres" does not exist, लेकिन psql postgresकाम करता है।
फ्रोजन फ्लेम

4

मुझे ठीक उसी तरह की त्रुटियां मिलती हैं जैसे कि kryshah के साथ su - postgresऔर sudo -u postgres psql। डैनियलएम का उत्तर भी त्रुटियां देता है।

गलत सेटिंग्स होने पर आउटपुट

हालांकि przbabu की टिप्पणी से उत्तर दें।

masi$ psql
psql: FATAL:  database "masi" does not exist
masi$ psql -U postgres
psql: FATAL:  role "postgres" does not exist
masi$ psql postgres
psql (9.4.1)
Type "help" for help.

मुझे लगता है कि OSX में इस समस्या का कुछ हिस्सा स्वामी सेटिंग्स में हो सकता है

masi$ ls -al /Users/
total 0
drwxr-xr-x   7 root      admin  238 Jul  3 09:50 .
drwxr-xr-x  37 root      wheel 1326 Jul  2 19:02 ..
-rw-r--r--   1 root      wheel    0 Sep 10  2014 .localized
drwxrwxrwt   7 root      wheel  238 Apr  9 19:49 Shared
drwxr-xr-x   2 root      admin   68 Jul  3 09:50 postgres
drwxr-xr-x+ 71 masi      staff 2414 Jul  3 09:50 masi

लेकिन कर रहा sudo chown -R postgres:staff /Users/postgresहै chown: invalid user: ‘postgres:staff’

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

सही सेटिंग्स और आउटपुट प्राप्त करने के लिए

डेटाबेस सिस्टम में एक नया उपयोगकर्ता जोड़ने के लिए स्थापना को स्थगित करने के बाद विशिष्ट कमांड हैं। Initdb के बाद, यहाँ वर्णित के रूप में निम्नलिखित चलाएँ

createuser --pwprompt postgres
createdb -Opostgres -Eutf8 masi_development
psql -U postgres -W masi_development

हर समय पासवर्ड के अनुरोध से बचने के लिए, आपके पास यहां वर्णित तीन विकल्प हैं


1

मेरे लिए यह macOS Reqstall psql पर समाधान था

brew install postgres

PostgreSQL सर्वर शुरू करें

pg_ctl -D /usr/local/var/postgres start

प्रारंभिक डीबी

initdb /usr/local/var/postgres

यदि यह कमांड पुराने डेटाबेस फाइल को rm को एरर देता है और उपरोक्त कमांड को फिर से रन करता है

rm -r /usr/local/var/postgres

एक नया डेटाबेस बनाएँ

createdb postgres_test
psql -W postegres_test

आप इस db में लॉग इन हो जाएंगे और लॉगिन करने के लिए यहां एक यूजर बना सकते हैं


0

समाधान सरल है:
लॉग इन रूट
और उसके बाद:

su - postgres

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