2012-03-09 60 views
14

Đây là cách nhìn tập tin database.yml của tôi (rõ ràng là có những thông tin liên quan để thử nghiệm và sản xuất cũng)Rails không thể đăng nhập vào postgresql - PG :: Lỗi - mật khẩu - thông tin chính xác

development: 
    adapter: postgresql 
    encoding: unicode 
    database: dbname_dev 
    pool: 5 
    username: username 
    password: tehpass 

Trong thiết bị đầu cuối tôi có thể chạy thành công sau và đăng nhập vào cơ sở dữ liệu:

psql -U username dbname_dev 

Tuy nhiên sau khi tạo dự án đường ray mới này và chạy

rails g controller ComingSoon index 

tôi nhận được thông báo sau khi tôi đi đến localhost: 3000/coming_soon (mặc dù thông tin đăng nhập tăng gấp đôi và gấp ba lần kiểm tra)

fe_sendauth: no password supplied 

Bất cứ ý tưởng tại sao tôi có thể đăng nhập vào các cơ sở dữ liệu thông qua "psql" nhưng Rails có thể không ?

Trả lời

25

database.yml:

connection: &connection 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 
    username: username 
    password: tehpass 

development: 
    <<: *connection 
    database: dbname_development 

test: 
    <<: *connection 
    database: dbname_test 

production: 
    <<: *connection 
    database: dbname_production 

Nếu điều này không làm việc cho bạn sau đó, có thể có một cái gì đó sai trong khi cài đặt.

Ghé thăm trang này blog, hy vọng điều này có thể giúp bạn.


EDIT


LỖI TRƯỜNG HỢP:

e_sendauth: no password supplied 

fe_sendauth: no password supplied 

Điều này xảy ra dưới một cổ phiếu Ubuntu cài đặt, và là do các điều khoản trong pg_hba.conf là quá hạn chế theo mặc định . Để cho phép các đường ray kết nối, chỉ cần thay đổi phần dưới của pg_hba.conf để trông như thế này.

# TYPE DATABASE USER  CIDR-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 

Hãy cho tôi biết nếu điều này có ích hay không?

+1

Vâng tôi đã chuyển sang phương pháp DRY của bạn chỉ vì. Tôi đã xem qua bài đăng trên blog và câu trả lời gần đây nhất của bạn. Liên quan đến câu trả lời gần đây tôi không chắc chắn A) nơi tệp đó nằm ở đâu và B) nếu đó là vấn đề vì tôi đang sử dụng Lion –

+0

Tôi đoán nó phải được lưu trữ trong '/ usr/local/var/postgres /' –

+0

là đặt tên người dùng và mật khẩu của bạn ở dạng văn bản thuần túy thực sự là một ý tưởng hay? –

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