2013-04-09 44 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