2013-04-09 89 views
0

我想用rails 3+來設置psql。我遵循這個http://railscasts.com/episodes/342-migrating-to-postgresql,一切都順利。我的database.yml有這樣的:損壞的psql。無法訪問psql客戶端

# PostgreSQL. Versions 8.2 and up are supported. 
# 
# Install the pg driver: 
# gem install pg 
# On Mac OS X with macports: 
# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config 
# On Windows: 
# gem install pg 
#  Choose the win32 build. 
#  Install PostgreSQL and put its /bin directory on your path. 
# 
# Configure Using Gemfile 
# gem 'pg' 
# 
development: 
    adapter: postgresql 
    encoding: unicode 
    database: app_development 
    pool: 5 
    username: root 
    password: 
    host: localhost 
    port: 5432 

    # Connect on a TCP socket. Omitted by default since the client uses a 
    # domain socket that doesn't need configuration. Windows does not have 
    # domain sockets, so uncomment these lines. 
    #host: localhost 
    #port: 5432 

    # Schema search path. The server defaults to $user,public 
    #schema_search_path: myapp,sharedapp,public 

    # Minimum log levels, in increasing order: 
    # debug5, debug4, debug3, debug2, debug1, 
    # log, notice, warning, error, fatal, and panic 
    # The server defaults to notice. 
    #min_messages: warning 

# 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: unicode 
    database: app_test 
    pool: 5 
    username: root 
    password: 
    host: localhost 
    port: 5432 

production: 
    adapter: postgresql 
    encoding: unicode 
    database: app_production 
    pool: 5 
    username: root 
    password: 
    host: localhost 
    port: 5432 

當我運行「的psql -U根-h本地主機-p 5432 -W」它不連接不管什麼密碼,我給it.'rake DB:創建:全部'也與

Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"app_production", "pool"=>5, "username"=>"root", "password"=>nil} 

任何想法?

+0

本教程未在'database.yml'中設置'host:localhost'。這種差異意味着它不受'pg_hba.conf'中的相同認證規則(它使用unix域套接字,而不是TCP套接字)。這**可能**解釋了爲什麼它不需要密碼,而你呢。 – 2013-04-09 16:35:47

回答

1

我不知道你是如何安裝PostgreSQL的 - 在我的Mac上,我發現它通常期望數據庫用戶名是我的用戶名,並且沒有密碼。你確定你已經設置了root用戶名和密碼嗎?

+0

我沒有設置密碼durin安裝。把它留空它給我,psql:fe_sendauth:沒有提供密碼 – 2013-04-09 15:03:02

+0

你確定用戶名應該是root嗎? – pat 2013-04-09 15:06:59

+0

我試過root和我的名字。我認爲系統中沒有更多用戶 – 2013-04-09 15:08:25