Rails: FATAL - Xác thực ngang hàng không thành công cho người dùng (PG :: Error)


143

Tôi đang chạy sự phát triển của mình trên Ubuntu 11.10 và RubyMine

Đây là cài đặt phát triển của tôi cho cơ sở dữ liệu.yml: RubyMine đã tạo cho tôi

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

Khi tôi thử chạy ứng dụng, tôi gặp lỗi này bên dưới, có vẻ như tôi chưa tạo người dùng 'dự án', nhưng, làm cách nào tôi có thể tạo người dùng và cấp cho cơ sở dữ liệu trong postgres? Nếu đây là vấn đề, thì công cụ được đề xuất sử dụng trong Ubuntu cho nhiệm vụ này là gì? Nếu đây không phải là vấn đề, xin vui lòng tư vấn.

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

Câu trả lời:


315

Nếu bạn đã cài đặt postresql trên máy chủ của mình thì chỉ cần lưu trữ: localhost vào cơ sở dữ liệu.yml, tôi thường ném nó xung quanh nơi nó nói pool: 5. Nếu không, nếu không phải localhost chắc chắn sẽ cho ứng dụng đó tìm cơ sở dữ liệu.

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

Đảm bảo thông tin đăng nhập người dùng của bạn được đặt chính xác bằng cách tạo cơ sở dữ liệu và gán quyền sở hữu cho người dùng ứng dụng của bạn để thiết lập kết nối. Để tạo một người dùng mới trong postgresql 9 chạy:

sudo -u postgres psql

đặt mật khẩu người dùng postgresql nếu bạn không có, nó chỉ là mật khẩu ngược.

postgres=# \password

Tạo người dùng và mật khẩu mới và cơ sở dữ liệu mới của người dùng:

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

Bây giờ hãy cập nhật tệp cơ sở dữ liệu của bạn sau khi bạn xác nhận tạo cơ sở dữ liệu, người dùng, mật khẩu và đặt các đặc quyền này. Đừng quên máy chủ: localhost.


2
nếu bạn vẫn gặp sự cố khi đăng nhập và hoàn tất kết nối qua localhost, hãy quay lại postgresql thông qua thiết bị đầu cuối và áp dụng một số quy ước 8.2 này để thiết lập các đặc quyền người dùng kết nối của bạn, cú pháp là GRANT ALL ON DATABASE [dbname] thành [usrname]. Cú pháp này hoạt động trên psql 9+ giống nhau, nhưng có lẽ bạn chỉ có thể chuyển đổi quyền trên cơ sở dữ liệu do người dùng sở hữu trước khi GRANT ALL: postgresql.org/docs/8.2/static/sql-grant.html
Bent Cardan

38
host: localhostpool: 5bị thiếu trong cấu hình của tôi. Sau khi thêm chúng, lỗi biến mất.
Amit Patel

21
Đối với tôi host: localhostđã mất tích. Sau khi tôi thêm vào, mọi thứ đã hoạt động. Đây là trong Ubuntu 13.04
Jesse

7
Cũng rất quan trọng để nhấn mạnh: ĐỪNG QUÊN CÁC SEMICOLONS .
Maarten

Cá nhân tôi nghĩ rằng điều quan trọng là có thể chạy thiết lập với rake db: setup. Nếu không, bạn sẽ gặp vấn đề khi tạo môi trường triển khai mới, nhưng mô tả này không hoạt động cho môi trường phát triển.
Ashley Raiteri

54

Đây là cách dễ dàng nhất để ứng dụng rails của bạn hoạt động với postgres trong môi trường phát triển trong Ubuntu 13.10.

1) Tạo ứng dụng rails với postgres YAML và 'pg' gem trong Gemfile:

$ rails new my_application -d postgresql

2) Cung cấp cho nó một số chức năng CRUD. Nếu bạn chỉ nhìn thấy nếu postgres hoạt động, hãy tạo một giàn giáo:

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

3) Tính đến rails 4.0.1các -d postgresqltùy chọn tạo ra một YAML mà không bao gồm một tham số vật chủ. Tôi thấy tôi cần cái này Chỉnh sửa phần phát triển và tạo các tham số sau:

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

Lưu ý databasetham số dành cho cơ sở dữ liệu chưa thoát, và usernamepasswordlà thông tin đăng nhập cho vai trò không tồn tại. Chúng ta sẽ tạo ra chúng sau này!

Đây là cách config/database.ymlnhìn (không có gì xấu hổ khi sao chép: D):

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) Khởi động shell postgres bằng lệnh này:

$ psql

4a) Bạn có thể gặp lỗi này nếu người dùng hiện tại của bạn (như người dùng máy tính của bạn) không có vai trò quản lý bưu điện tương ứng.

psql: FATAL:  role "your_username" does not exist

Bây giờ tôi chỉ cài đặt postgres một lần, vì vậy tôi có thể sai ở đây, nhưng tôi nghĩ postgres tự động tạo ra vai trò quản trị với thông tin đăng nhập giống như người dùng bạn đã cài đặt postgres.

4b) Vì vậy, điều này có nghĩa là bạn cần thay đổi người dùng đã cài đặt postgres để sử dụng lệnh psql và khởi động shell:

$ sudo su postgres

Và sau đó chạy

$ psql

5) Bạn sẽ biết bạn đang ở trong vỏ postgres vì ​​thiết bị đầu cuối của bạn sẽ trông như thế này:

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

postgres=# 

6) Sử dụng cú pháp postgresql, hãy tạo cho người sử dụng, chúng tôi quy định tại config/database.yml's phát triển phần:

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

Bây giờ, có một số tinh tế ở đây vì vậy hãy đi qua chúng.

  • Tên người dùng của vai trò, thisismynewusername , không có dấu ngoặc kép của loại nào xung quanh nó
  • Chỉ định từ khóa ĐĂNG NHẬP sau khi . Nếu bạn không, vai trò vẫn sẽ được tạo, nhưng nó sẽ không thể đăng nhập vào cơ sở dữ liệu!
  • Mật khẩu của vai trò, thisismynewpassword , cần phải được trong dấu nháy đơn. Không báo giá kép .
  • Thêm một dấu hai chấm vào cuối;)

Bạn sẽ thấy điều này trong thiết bị đầu cuối của bạn:

postgres=#
CREATE ROLE
postgres=#

Điều đó có nghĩa là, "VAI TRÒ TẠO", nhưng các cảnh báo của postgres dường như chấp nhận các quy ước bắt buộc tương tự của trung tâm git.

7) Bây giờ, vẫn trong vỏ postgres, chúng ta cần tạo cơ sở dữ liệu với tên chúng ta đặt trong YAML. Tạo người dùng mà chúng tôi đã tạo ở bước 6 chủ sở hữu của nó:

postgres=# CREATE DATABASE my_application_development OWNER thisismynewusername;

Bạn sẽ biết nếu bạn đã thành công bởi vì bạn sẽ nhận được đầu ra:

CREATE DATABASE

8) Thoát khỏi vỏ postgres:

\q

9) Bây giờ là khoảnh khắc của sự thật:

$ RAILS_ENV=development rake db:migrate

Nếu bạn nhận được điều này:

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

Xin chúc mừng, postgres đang hoạt động hoàn hảo với ứng dụng của bạn.

9a) Trên máy cục bộ của tôi, tôi liên tục gặp lỗi về quyền. Tôi không thể nhớ chính xác, nhưng đó là một lỗi dọc theo dòng

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

Mặc dù tôi khuyên bạn nên suy nghĩ rất cẩn thận về việc thiết lập đệ quy viết đối thủ trên máy sản xuất, tại địa phương, tôi đã cho toàn bộ ứng dụng của mình đọc các đặc quyền ghi như thế này:

9b) Leo lên một cấp thư mục:

$ cd ..

9c) Đặt quyền của thư mục my_application và tất cả nội dung của nó thành 666:

$ chmod -R 0666 my_application

9d) Và chạy lại di chuyển:

$ RAILS_ENV=development rake db:migrate

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

Một số mẹo và thủ thuật nếu bạn làm quen

Hãy thử những điều này trước khi khởi động lại tất cả các bước sau:

Người dùng mynewusername không có đặc quyền CRUD cho my_app_developmentcơ sở dữ liệu? Thả cơ sở dữ liệu và tạo lại nó với tên người dùng mynewus là chủ sở hữu:

1) Bắt đầu vỏ postgres:

$ psql

2) Thả my_app_developmentcơ sở dữ liệu. Hãy cẩn thận! Thả có nghĩa là hoàn toàn xóa!

postgres=# DROP DATABASE my_app_development;

3) Tạo lại tên khác my_app_developmentvà đặt tên người dùng của tôi là chủ sở hữu:

postgres=# CREATE DATABASE my_application_development OWNER mynewusername;

4) Thoát khỏi vỏ:

postgres=# \q

Người mynewusernamedùng không thể đăng nhập vào cơ sở dữ liệu? Bạn nghĩ rằng bạn đã viết sai mật khẩu trong YAML và bạn không thể nhớ mật khẩu bạn đã nhập bằng cách sử dụng shell postgres? Chỉ cần thay đổi vai trò với mật khẩu YAML:

1) Mở YAML của bạn và sao chép mật khẩu vào khay nhớ tạm của bạn:

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

2) Bắt đầu vỏ postgres:

$ psql    

3) Cập nhật mynewusernamemật khẩu. Dán mật khẩu và nhớ đặt dấu ngoặc đơn xung quanh nó:

postgres=# ALTER ROLE mynewusername PASSWORD `musthavebeenverydrunkwheniwrotethis`;

4) Thoát khỏi vỏ:

postgres=# \q

Bạn đang cố gắng kết nối với localhost thông qua trình xem cơ sở dữ liệu như Dbeaver và không biết mật khẩu người dùng của bạn là gì? Thay đổi nó như thế này:

1) Chạy passwdnhư một siêu người dùng:

$ sudo passwd postgres

2) Nhập mật khẩu tài khoản của bạn cho sudo(không có gì để làm với postgres):

[sudo] password for starkers: myaccountpassword

3) Tạo mật khẩu mới của tài khoản postgres:

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

Nhận thông báo lỗi này?:

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) Bạn cần cung cấp cho người dùng khả năng tạo cơ sở dữ liệu. Từ trình vỏ psql:

ALTER ROLE thisismynewusername WITH CREATEDB

1
Tôi ước tôi có thể cung cấp cho bạn nhiều hơn +1 cho giải pháp tuyệt vời này, tôi sẽ còn hạnh phúc hơn nếu nó hiệu quả với tôi. vẫn trả lời xuất sắc. Câu hỏi nhanh, những backticks xung quanh mật khẩu có vai trò thay đổi? Ngoài ra, bạn không cần phải sử dụng backticks sớm hơn phải không?
Mike HR

@ MikeH-R Cảm ơn, xấu hổ vì nó không hiệu quả với bạn! Bạn có chắc chắn YAML có liên quan của bạn có host: localhost? Đó là gotcha thực sự cho tôi. Xung quanh mật khẩu bạn cần dấu ngoặc đơn. Trên bàn phím của tôi đó là shift+ @. Với shell psql bạn chỉ cần các trích dẫn đơn xung quanh một số tham số. Bạn cần chúng xung quanh mật khẩu, và không phải xung quanh tên của vai trò, ví dụ. Thành thật mà nói, nhưng không sao khi bạn biết đó là sắc thái :)
Starkers 14/214

@ MikeH-R Tôi đã điều chỉnh câu trả lời của mình để làm cho mọi thứ rõ ràng hơn. Xem xét có một vết nứt khác tại nó!
Starkers

sắp xếp nó ra ngay bây giờ, cảm ơn một lần nữa cho một câu trả lời tuyệt vời, hầu hết các câu trả lời khác mà tôi gặp phải là về việc nới lỏng an ninh mà rõ ràng là không tốt trong sản xuất.
Mike HR

29

Đối với giải pháp vĩnh viễn:

Vấn đề là với pg_hba của bạn. Đường thẳng này:

local   all             postgres                                peer

Nên là

local   all             postgres                                md5

Sau đó khởi động lại máy chủ postgresql của bạn sau khi thay đổi tệp này.

Nếu bạn đang dùng Linux, lệnh sẽ là

sudo service postgresql restart

1
Cảm ơn bạn! Đây là câu trả lời thực sự.
skplunkerin

9

Tôi đã gặp phải vấn đề tương tự trên máy Ubuntu vì vậy tôi đã loại bỏ lỗi này bằng cách làm theo một số bước. Chuyển sang người dùng postgres

$ sudo su - postgres

Nó sẽ hỏi mật khẩu và mật khẩu mặc định là postgres

Sau khi chuyển người dùng sang postgres, hãy mở giao diện điều khiển psql

$ psql

vì vậy hãy kiểm tra phiên bản của postgres nếu có nhiều phiên bản

psql=# select VERSION();

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

Bây giờ mở postgres user

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

9.1 là phiên bản trả về của lệnh trên

và thay thế

local   all             postgres                                peer

đến

local   all             postgres                                md5

Khởi động lại dịch vụ

sudo service postgresql restart

Tôi cũng viết các bước trên blog của mình

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


Bạn đã đưa ra câu trả lời đúng, chỉ bỏ lỡ một điều bạn không cần kiểm tra phiên bản. Bạn có thể thay đổi mật khẩu bằng cách chạy lệnh này sau khi "tên người dùng" của người dùng psql Alter đặt mật khẩu 'xyz';
vishu

Nhớ lấy md5 xác thực yêu cầu mật khẩu không null cho người dùng cơ sở dữ liệu của bạn (chỉ cần có một chút vào ngày hôm nay trong khi cố gắng tối đa hóa sự lười biếng khi tạo ứng dụng aa Rails).
Mark Leighton Fisher

5

Bạn có thể truy cập tệp /var/lib/pgsql/data/pg_hba.conf và thêm niềm tin vào vị trí Nhận dạng Nó hoạt động với tôi.

local   all all trust
host    all 127.0.0.1/32    trust

Để biết thêm chi tiết tham khảo vấn đề này Xác thực không thành công cho người dùng


Centos 6.6, thử:/var/lib/pgsql/9.2/data/pg_hba.conf
Patrick

4

Thêm host: localhostlà phép màu đối với tôi

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

0

Nếu bạn nhận được thông báo lỗi đó ( Peer authentication failed for user (PG::Error)) khi chạy kiểm tra đơn vị, hãy đảm bảo cơ sở dữ liệu kiểm tra tồn tại.


0

Tôi cũng gặp phải vấn đề tương tự khi làm việc trong môi trường phát triển của mình, vấn đề là tôi đã để lại host: localhostbình luận trongconfig/database.yml tệp.

Vì vậy, ứng dụng của tôi không thể kết nối với cơ sở dữ liệu PostgreSQL, chỉ cần bỏ qua nó đã giải quyết được vấn đề.

development:
  <<: *default
  database: database_name

  username: database_username 

  password: database_password

  host: localhost

Đó là tất cả.

Tôi hi vọng cái này giúp được

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.