2013-08-01 42 views
38

database.yml:fe_sendauth: không có mật khẩu được cung cấp

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
development: 
    adapter: postgresql 
    encoding: utf8 
    database: sampleapp_dev #can be anything unique 
    #host: localhost 
    #username: 7stud 
    #password: 

    #adapter: sqlite3 
    #database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: postgresql 
    encoding: utf8 
    database: sampleapp_test #can be anything unique 
    #host: localhost 
    #username: 7stud 
    #password: 
    #adapter: sqlite3 
    #database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: postgresql 
    database: sampleapp_prod #can be anything unique 
    #host: localhost 
    #username: 7stud 
    #password: 
    #adapter: sqlite3 
    #database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 

pg_hba.conf:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 
#local replication  postgres        md5 
#host replication  postgres  127.0.0.1/32   md5 
#host replication  postgres  ::1/128     md5 

Tôi đã thay đổi phương pháp trong ba dòng đầu tiên từ md5 để tin tưởng, nhưng tôi vẫn nhận được lỗi .

Và không có vấn đề gì kết hợp của những điều tôi cố gắng trong database.yml, khi tôi làm:

~/rails_projects/sample_app4_0$ bundle exec rake db:create:all 

tôi luôn luôn nhận được lỗi:

fe_sendauth: no password supplied

Tôi đi theo hướng dẫn này để có được những điều thiết lập :

https://pragtob.wordpress.com/2012/09/12/setting-up-postgresql-for-ruby-on-rails-on-linux

Mac OSX 10.6.8 
PostgreSQL 9.2.4 installed via enterpriseDB installer 
Install dir: /Library/PostgreSQL/9.2 
+1

Và bạn đã tải lại tệp pg_hba.conf của mình sau khi thực hiện thay đổi? – bma

+0

@bma, Làm thế nào để bạn tải lại? Cách duy nhất tôi có thể kết nối với máy chủ là sử dụng pgAdmin3 (trong thư mục 9.2). Tôi chọn máy chủ, nhấp chuột phải, sau đó chọn Connnect. Vì vậy, trong một nỗ lực để tải lại các tập tin conf, tôi bị ngắt kết nối từ máy chủ trong pgAdmin3, sau đó kết nối lại. – 7stud

+2

Bạn có thể đưa ra một truy vấn: 'chọn pg_reload_conf()' làm superuser, hoặc trong pgadmin bạn có thể nhấp chuột phải vào tên db, sau đó nhấn "Reload Configuration" (tôi nghĩ đó là những gì có, tôi không dùng pgadmin) – bma

Trả lời

43

Sau khi thực hiện thay đổi đối với các tệp pg_hba.conf hoặc postgresql.conf, cụm cần phải được tải lại để nhận các thay đổi.

Từ dòng lệnh: pg_ctl reload

Từ bên trong một db (như superuser): select pg_reload_conf();

Từ pgAdmin: tên db nhấp chuột phải, chọn "Nạp Configuration"

Lưu ý: reload không đủ cho các thay đổi như cho phép lưu trữ, thay đổi shared_buffers, v.v. - những thay đổi đó yêu cầu khởi động lại cụm.

+1

Tôi có một câu hỏi tiếp theo: Theo như tôi biết, tôi chưa bao giờ bắt đầu bất kỳ máy chủ nào. Điều duy nhất tôi đã làm là cài đặt postgress với trình cài đặt Mac OSX. Sau đó, tôi đã dành hàng giờ cố gắng tìm ra cách sử dụng postgres mà không có may mắn. Tôi chỉ xảy ra tại chỗ pgAdmin3 trong thư mục /Library/PostgreSQL/9.2, vì vậy tôi đã nhấp vào nó. Vậy máy chủ đã bắt đầu như thế nào? Và tôi có cần dừng nó không? – 7stud

+2

Nó có thể bắt đầu sau khi cài đặt hoàn tất bởi trình cài đặt (hầu hết các trình cài đặt/gói mà tôi đã thấy làm điều đó) – bma

+0

Tôi có cần dừng nó không? Làm thế nào tôi có thể làm điều đó? Tôi không thích trình cài đặt vì tôi thường sử dụng dòng lệnh. – 7stud

Các vấn đề liên quan