रेलें: FATAL - उपयोगकर्ता के लिए सहकर्मी प्रमाणीकरण विफल (PG :: त्रुटि)


143

मैं Ubuntu 11.10, और RubyMine पर अपना विकास चला रहा हूं

यहाँ डेटाबेस के लिए मेरी विकास सेटिंग्स है। हाइमल: जो रूबीमाइन ने मेरे लिए बनाया है

development:
  adapter: postgresql
  encoding: unicode
  database: mydb_development
  pool: 5
  username: myuser
  password:

जब मैं ऐप चलाने की कोशिश करता हूं, तो मुझे यह त्रुटि मिलती है, ऐसा लगता है कि मैंने अभी तक एक 'प्रोजेक्ट' उपयोगकर्ता नहीं बनाया है, लेकिन, मैं एक उपयोगकर्ता कैसे बना सकता हूं और इसे पोस्टग्रेज में डेटाबेस प्रदान कर सकता हूं? यदि यह समस्या है, तो, इस कार्य के लिए उबंटू में उपयोग करने के लिए अनुशंसित उपकरण क्या है? यदि यह समस्या नहीं है, तो, कृपया सलाह दें।

Exiting
/home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `initialize': FATAL:  Peer authentication failed for user "project" (PG::Error)
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `new'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `connect'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:303:in `new_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:313:in `checkout_new_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:237:in `block (2 levels) in checkout'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:232:in `loop'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:232:in `block in checkout'
    from /home/sam/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `checkout'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in `retrieve_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/model_schema.rb:308:in `clear_cache!'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/railtie.rb:91:in `block (2 levels) in <class:Railtie>'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:418:in `_run__757346023__prepare__404863399__callbacks'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:405:in `__run_callback'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:385:in `_run_prepare_callbacks'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:81:in `run_callbacks'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/actionpack-3.2.3/lib/action_dispatch/middleware/reloader.rb:74:in `prepare!'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/actionpack-3.2.3/lib/action_dispatch/middleware/reloader.rb:48:in `prepare!'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/application/finisher.rb:47:in `block in <module:Finisher>'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `instance_exec'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `run'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:55:in `block in run_initializers'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `each'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `run_initializers'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/application.rb:136:in `initialize!'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `method_missing'
    from /home/sam/RubymineProjects/project/config/environment.rb:5:in `<top (required)>'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `block in require'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
    from /home/sam/RubymineProjects/project/config.ru:4:in `block in <main>'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
    from /home/sam/RubymineProjects/project/config.ru:1:in `new'
    from /home/sam/RubymineProjects/project/config.ru:1:in `<main>'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/server.rb:200:in `app'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands/server.rb:46:in `app'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/rack-1.4.1/lib/rack/server.rb:252:in `start'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands/server.rb:70:in `start'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands.rb:55:in `block in <top (required)>'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap'
    from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/railties-3.2.3/lib/rails/commands.rb:50:in `<top (required)>'
    from /home/sam/RubymineProjects/project/script/rails:6:in `require'
    from /home/sam/RubymineProjects/project/script/rails:6:in `<top (required)>'
    from -e:1:in `load'
    from -e:1:in `<main>'

Process finished with exit code 1

जवाबों:


315

यदि आपने अपने सर्वर पर पोस्टरेस्कल स्थापित किया है, तो बस होस्ट करें: लोकलहोस्ट को डेटाबेस। हाइएल, मैं आमतौर पर इसे चारों ओर फेंक देता हूं जहां यह पूल कहता है: 5. अन्यथा अगर यह स्थानीयहोस्ट नहीं है, तो निश्चित रूप से उस ऐप को बताएं जहां उसका डेटाबेस ढूंढना है।

development:
  adapter: postgresql
  encoding: unicode
  database: kickrstack_development
  host: localhost
  pool: 5
  username: kickrstack
  password: secret

सुनिश्चित करें कि एक डेटाबेस बनाकर और कनेक्शन स्थापित करने के लिए आपके ऐप के उपयोगकर्ता को स्वामित्व प्रदान करके आपके उपयोगकर्ता क्रेडेंशियल्स को सही तरीके से सेट किया गया है। Postgresql 9 रन में एक नया उपयोगकर्ता बनाने के लिए:

sudo -u postgres psql

यदि आपने नहीं किया है तो postgresql यूजर पासवर्ड सेट करें, यह सिर्फ बैकस्लैश पासवर्ड है।

postgres=# \password

एक नया उपयोगकर्ता और पासवर्ड और उपयोगकर्ता का नया डेटाबेस बनाएँ:

postgres=# create user "guy_on_stackoverflow" with password 'keepitonthedl';
postgres=# create database "dcaclab_development" owner "guy_on_stackoverflow"; 

डेटाबेस, उपयोगकर्ता, पासवर्ड बनाने की पुष्टि करने और इन विशेषाधिकारों को निर्धारित करने के बाद अब अपने database.yml फ़ाइल को अपडेट करें। होस्ट को मत भूलना: लोकलहोस्ट।


2
यदि आपको अभी भी लॉग इन करने और लोकलहोस्ट पर कनेक्शन पूरा करने में परेशानी हो रही है, तो टर्मिनल के माध्यम से पोस्टग्रैक्स्ल में वापस जाएं और अपने कनेक्टिंग उपयोगकर्ता के विशेषाधिकारों को स्थापित करने के लिए इन 8.2 सम्मेलनों को लागू करें, वाक्यविन्यास सभी पर आधारित है [dbname] [usrname] पर। यह सिंटैक्स psql 9+ पर समान रूप से काम करता है, लेकिन आप संभवतः केवल उपयोगकर्ता द्वारा स्वामित्व वाले डेटाबेस पर अनुमतियों को टॉगल कर सकते हैं, इससे पहले कि यह सभी को प्राप्त कर लेगा: पोस्टग्रैसक्ल्.ऑर्ग
बेंट कार्डन

38
host: localhostऔर pool: 5मेरे विन्यास में गायब था। उन्हें जोड़ने के बाद, त्रुटि गायब हो गई।
अमित पटेल

21
मेरे host: localhostलिए गायब था। के बाद मैंने कहा कि, सब कुछ काम किया। यह उबंटू 13.04
जेसी

7
तनाव के लिए भी महत्वपूर्ण है: SEMICOLONS को न भूलें
मार्टन

व्यक्तिगत रूप से मुझे लगता है कि रेक डीबी: सेटअप के साथ सेटअप को चलाने में सक्षम होना महत्वपूर्ण है। अन्यथा आप एक नए परिनियोजन वातावरण बनाने के लिए समस्याएँ उत्पन्न करने जा रहे हैं, लेकिन यह विवरण एक विकास परिवेश के लिए काम करता है।
एशले रायटरी

54

विकास के माहौल में अपने पोस्टरों के साथ काम करने के लिए यह सबसे आसान तरीका है उबंटू 13.10 में में ।

1) पोस्टिंग के साथ रेल एप्लिकेशन बनाएं YAMFL और जेमफाइल में 'pg' रत्न:

$ rails new my_application -d postgresql

2) इसे कुछ CRUD कार्यक्षमता दें। यदि आप देख रहे हैं कि क्या पोस्टग्रैज काम करता है, तो एक पाड़ बनाएं:

$ rails g scaffold cats name:string age:integer colour:string

3) के रूप में विकल्प के लिए एक YAML कि एक मेजबान पैरामीटर शामिल नहीं है उत्पन्न करता है। मैंने पाया कि मुझे इसकी आवश्यकता है। विकास अनुभाग संपादित करें और निम्नलिखित पैरामीटर बनाएँ:rails 4.0.1-d postgresql

encoding: UTF-8
host: localhost
database: my_application_development
username: thisismynewusername
password: thisismynewpassword 

नोट databaseपैरामीटर एक डेटाबेस है कि अभी तक बाहर नहीं के लिए है, और usernameऔर passwordएक भूमिका है कि या तो मौजूद नहीं है के लिए क्रेडेंशियल हैं। हम बाद में उन बनाएँगे!

यह कैसे config/database.ymlदिखना चाहिए (नकल में कोई शर्म नहीं: डी):

development:
  adapter: postgresql
  pool: 5
  # these are our new parameters
  encoding: UTF-8
  database: my_application_development
  host: localhost
  username: thisismynewusername
  password: thisismynewpassword

test:
  # this won't work 
  adapter: postgresql
  encoding: unicode
  database: my_application_test
  pool: 5
  username: my_application
  password:

production:
  # this won't work 
  adapter: postgresql
  encoding: unicode
  database: my_application_production
  pool: 5
  username: my_application
  password:

4) इस कमांड के साथ पोस्टग्रेज शेल शुरू करें:

$ psql

4a) यदि आपके वर्तमान उपयोगकर्ता (आपके कंप्यूटर उपयोगकर्ता के रूप में) के पास यह त्रुटि नहीं हो सकती है, तो उसके अनुरूप प्रशासन की भूमिका नहीं होगी।

psql: FATAL:  role "your_username" does not exist

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

4 बी) तो इसका मतलब है कि आपको उस उपयोगकर्ता को बदलने की आवश्यकता है जो psql कमांड का उपयोग करने के लिए पोस्टग्रेज स्थापित करता है और शेल शुरू करता है:

$ sudo su postgres

और फिर चला

$ psql

5) आप जानेंगे कि आप पोस्टग्रेज शेल में हैं क्योंकि आपका टर्मिनल इस तरह दिखेगा:

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

postgres=# 

6) PostgreSQL वाक्य रचना का उपयोग करते हुए, चलो उपयोगकर्ता हम में निर्दिष्ट बनाने config/database.ymlके विकास अनुभाग:

postgres=# CREATE ROLE thisismynewusername WITH LOGIN PASSWORD 'thisismynewpassword';

अब, यहां कुछ सूक्ष्मताएं हैं, तो चलो उनके ऊपर चलते हैं।

  • भूमिका का उपयोगकर्ता नाम, thisismynewusername , नहीं करता है इसके आसपास किसी भी प्रकार के उद्धरण हैं
  • कीवर्ड निर्दिष्ट प्रवेश के बाद के साथ । यदि आप नहीं करते हैं, तो भूमिका अभी भी बनाई जाएगी, लेकिन यह डेटाबेस में लॉग इन नहीं कर पाएगी!
  • भूमिका का पासवर्ड, thisismynewpassword , एकल उद्धरणों में होना चाहिए। दोहरे भाव नहीं
  • अंत में एक अर्ध उपनिवेश जोड़ें;)

आपको अपने टर्मिनल में इसे देखना चाहिए:

postgres=#
CREATE ROLE
postgres=#

इसका मतलब है कि, "ROLE CREATE", लेकिन पोस्टग्रेट्स के अलर्ट git हब के समान अनिवार्यता को अपनाने के लिए प्रतीत होते हैं।

7) अब, अभी भी पोस्टग्रेज शेल में, हमें डेटाबेस को उस नाम से बनाने की जरूरत है, जिसे हम YAML में सेट करते हैं। उपयोगकर्ता को हमने चरण 6 में बनाया उसके मालिक बनाएं:

postgres=# CREATE DATABASE my_application_development OWNER thisismynewusername;

आपको पता चल जाएगा कि क्या आप सफल थे क्योंकि आपको आउटपुट मिलेगा:

CREATE DATABASE

8) पोस्टग्रेज शेल से बाहर निकलें:

\q

9) अब सच का क्षण:

$ RAILS_ENV=development rake db:migrate

यदि आपको यह मिलता है:

==  CreateCats: migrating =================================================
-- create_table(:cats)
   -> 0.0028s
==  CreateCats: migrated (0.0028s) ========================================

बधाई, पोस्टग्रेज आपके ऐप के साथ पूरी तरह से काम कर रहा है।

9a) अपनी स्थानीय मशीन पर, मुझे एक अनुमति त्रुटि मिलती रही। मैं इसे ठीक से याद नहीं कर सकता, लेकिन यह एक त्रुटि थी

Can't access the files. Change permissions to 666.

हालाँकि मैं स्थानीय स्तर पर उत्पादन मशीन पर निजी तौर पर लिखने के बारे में बहुत सावधानी से सोचने की सलाह दूंगा, लेकिन मैंने अपने पूरे ऐप को इस बारे में विशेषाधिकार लिखने के लिए दिया:

9 बी) एक निर्देशिका स्तर ऊपर चढ़ो:

$ cd ..

9c) my_application निर्देशिका की अनुमति और इसकी सभी सामग्री को 666 पर सेट करें:

$ chmod -R 0666 my_application

9d) और फिर से माइग्रेशन चलाएं:

$ RAILS_ENV=development rake db:migrate

==  CreateCats: migrating =================================================
-- create_table(:cats)
   -> 0.0028s
==  CreateCats: migrated (0.0028s) ========================================

कुछ उपाय और टोटके अगर आप चकनाचूर कर दे तो

इन सभी चरणों को पुनः आरंभ करने से पहले इन्हें आज़माएं:

Mynewusername उपयोगकर्ता के my_app_developmentडेटाबेस में CRUD के विशेषाधिकार नहीं हैं ? डेटाबेस को छोड़ें और इसे फिर से mynewusername के मालिक के रूप में बनाएं:

1) पोस्टग्रेज खोल शुरू करें:

$ psql

2) my_app_developmentडेटाबेस ड्रॉप । सावधान रहे! ड्रॉप का मतलब है बिलकुल डिलीट!

postgres=# DROP DATABASE my_app_development;

3) दूसरे को फिर से बनाएँ और my_app_developmentमालिक को नाम दें:

postgres=# CREATE DATABASE my_application_development OWNER mynewusername;

4) खोल से बाहर निकलें:

postgres=# \q

mynewusernameउपयोगकर्ता डेटाबेस में प्रवेश नहीं कर सकते हैं? सोचें कि आपने YAML में गलत पासवर्ड लिखा है और पोस्टग्रेज शेल का उपयोग करके आपके द्वारा दर्ज किए गए पासवर्ड को काफी याद नहीं रख सकते हैं? बस YAML पासवर्ड के साथ भूमिका बदलो:

1) अपना YAML खोलें, और अपने क्लिपबोर्ड पर पासवर्ड कॉपी करें:

 development:
      adapter: postgresql
      pool: 5
      # these are our new parameters
      encoding: UTF-8
      database: my_application_development
      host: localhost
      username: thisismynewusername
      password: musthavebeenverydrunkwheniwrotethis

2) पोस्टग्रेज खोल शुरू करें:

$ psql    

3) अपडेट mynewusernameका पासवर्ड। पासवर्ड में पेस्ट करें, और उसके चारों ओर सिंगल कोट्स रखना न भूलें:

postgres=# ALTER ROLE mynewusername PASSWORD `musthavebeenverydrunkwheniwrotethis`;

4) खोल से बाहर निकलें:

postgres=# \q

डेटाबेस दर्शक जैसे Dbeaver के माध्यम से लोकलहोस्ट से कनेक्ट करने की कोशिश कर रहा है, और यह नहीं जानता कि आपका उपयोगकर्ता का पासवर्ड क्या है? इसे इस तरह बदलें:

1) passwdएक सुपरयुसर के रूप में दौड़ें:

$ sudo passwd postgres

2) अपने खाते का पासवर्ड दर्ज करें sudo(पोस्टग्रेज से कोई लेना देना नहीं):

[sudo] password for starkers: myaccountpassword

3) पोस्टग्रेज्स अकाउंट का नया पासवार्ड बनाएं:

Enter new UNIX password: databasesarefun
Retype new UNIX password: databasesarefun
passwd: password updated successfully

यह त्रुटि संदेश मिल रहा है ?:

Run `$ bin/rake db:create db:migrate` to create your database
$ rake db:create db:migrate
PG::InsufficientPrivilege: ERROR:  permission denied to create database

4) आपको अपने उपयोगकर्ता को डेटाबेस बनाने की क्षमता देने की आवश्यकता है। साइकल शेल से:

ALTER ROLE thisismynewusername WITH CREATEDB

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

@ माइक-आर धन्यवाद, शर्म की बात है यह आपके लिए काम नहीं करता है! क्या आपको यकीन है कि आपके प्रासंगिक YAML के पास है host: localhost? मेरे लिए यही असली गोत्र था। पासवर्ड के आसपास आपको सिंगल कोट्स की जरूरत होती है। मेरे कीबोर्ड पर यह shift+ है @। साइकल शेल के साथ आपको केवल कुछ मापदंडों के आसपास सिंगल कोट्स की आवश्यकता होती है। आपको उन्हें पासवर्ड के आसपास की आवश्यकता है, कि भूमिका के नाम के आसपास, उदाहरण के लिए। यह बहुत ही ईमानदारी से सच है, लेकिन ठीक है एक बार जब आप जानते हैं कि यह बारीकियों :)
स्टार्क

@ माइक-आर मैंने चीजों को स्पष्ट करने के लिए अपना उत्तर दिया है। इस पर एक और दरार होने पर विचार करें!
स्टार्क

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

29

स्थायी समाधान के लिए:

समस्या आपके pg_hba के साथ है। यह रेखा:

local   all             postgres                                peer

होना चाहिए

local   all             postgres                                md5

फिर इस फाइल को बदलने के बाद अपने पोस्टग्रैक्स्ल सर्वर को पुनः आरंभ करें

यदि आप लिनक्स पर हैं, तो कमांड होगी

sudo service postgresql restart

1
धन्यवाद! यही असली जवाब है।
22 अप्रैल को skplunkerin

9

मैं उबंटू मशीन पर एक ही समस्या का सामना कर रहा था इसलिए मैंने कुछ चरणों का पालन करके इस त्रुटि को हटा दिया। उपयोगकर्ता को पोस्टग्रेज करने के लिए स्विच करें

$ sudo su - postgres

यह पासवर्ड के लिए पूछेगा और डिफ़ॉल्ट रूप से पासवर्ड है postgres

उपयोगकर्ता को पोस्टग्रेज पर स्विच करने के बाद, psql कंसोल खोलें

$ psql

इसलिए कई संस्करणों के उपलब्ध होने पर पोस्टग्रेज के संस्करण की जांच करें

psql=# select VERSION();

PostgreSQL 9.1.13 on x86_64-unk....         # so version is 9.1

अब खोलो postgres user

vim /etc/postgresql/9.1/main/pg_hba.conf

9.1 वर्जन रिटर्न फॉर्म अपर कमांड है

और प्रतिस्थापित करें

local   all             postgres                                peer

सेवा

local   all             postgres                                md5

सेवा को पुनरारंभ करें

sudo service postgresql restart

मैं अपने ब्लॉग पर भी स्टेप्स लिखता हूँ

http://tarungarg402.blogspot.in/2014/10/set-up-postgresql-on-ubuntu.html


आपने सही उत्तर दिया है, केवल एक चीज याद की है जिसे आपको संस्करण की जांच करने की आवश्यकता नहीं है। Psql Alter उपयोगकर्ता "उपयोगकर्ता नाम" सेट पासवर्ड 'xyz' के बाद आप इस कमांड को चलाकर पासवर्ड बदल सकते हैं;
विष्णु

याद रखें कि md5प्रमाणीकरण के लिए आपके डेटाबेस उपयोगकर्ता के लिए एक गैर-शून्य पासवर्ड की आवश्यकता होती है (बस आज ही थोड़ा सा प्रयास करते हुए आल रेज एप्लिकेशन को बनाते समय अधिकतम करने की कोशिश करें)।
मार्क लेइटन फिशर

5

आप अपनी /var/lib/pgsql/data/pg_hba.conf फ़ाइल पर जा सकते हैं और मेरे लिए काम किए गए पहचान के स्थान पर विश्वास जोड़ सकते हैं।

local   all all trust
host    all 127.0.0.1/32    trust

अधिक जानकारी के लिए इस समस्या को देखें पहचान प्रमाणीकरण उपयोगकर्ता के लिए विफल रहा


सेंटोस 6.6, कोशिश:/var/lib/pgsql/9.2/data/pg_hba.conf
पैट्रिक

4

जोड़ना host: localhostमेरे लिए जादू था

development:
  adapter: postgresql
  database: database_name_here
  host: localhost
  username: user_name_here

0

यदि आपको Peer authentication failed for user (PG::Error)इकाई परीक्षण चलाते समय वह त्रुटि संदेश ( ) मिलता है , तो सुनिश्चित करें कि परीक्षण डेटाबेस मौजूद है।


0

मैंने अपने विकास के माहौल में काम करते हुए भी इसी मुद्दे का सामना किया, समस्या यह थी कि मैंने host: localhostटिप्पणी को छोड़ दियाconfig/database.yml फ़ाइल ।

इसलिए मेरा एप्लिकेशन PostgreSQL डेटाबेस से कनेक्ट नहीं हो सका, बस इसे अनसुना करने से समस्या हल हो गई।

development:
  <<: *default
  database: database_name

  username: database_username 

  password: database_password

  host: localhost

बस इतना ही।

आशा है कि ये आपकी मदद करेगा

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