2013-10-08 77 views
2

運行時,我有一個問題PostgreSQL的Rails的問題

$ rake db:create:all 
could not connect to server: Permission denied 
    Is the server running locally and accepting 
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:1222:in `initialize' 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:1222:in `new' 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:1222:in `connect' 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:324:in `initialize' 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new' 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection' 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `new_connection' 
/Users/stephanecedroni/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:in `checkout_new_connection' 
..... 
..... 

試圖卸載並重新安裝pg寶石,但仍然無法工作。

首先試圖跟蹤Ryan貝茨截屏,但有一些問題,然後檢查的Heroku Postgres的建議設置這個路徑:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

+0

我曾經有過類似的問題。你是如何安裝Postgresql的?你的database.yml是什麼樣的? – jcm

+0

thx爲您的答覆。在Postgres網站上下載。嘗試以下RyanBates截屏..並使用相同的database.yml 發展與自制軟件進行安裝: 適配器:PostgreSQL的 編碼:統一 數據庫:blog_development 池:5 用戶名:博客 密碼: –

回答

2

這可能是耙試圖連接到/var/pgsql_socket/.s.PGSQL.5432但域套接字實際上是在別的地方。我的地址是/tmp/.s.PGSQL.5432。你可以試試這些:

在你的database.yml中指定host: localhost。例如:

development: 
    host: localhost 
    # other stuff 

OR

創建/var/pgsql_socket/.s.PGSQL.5432居然住一個符號鏈接。

mkdir /var/pgsql_socket 
ln -s /tmp/.s.PGSQL.5432 /var/pgsql_socket/.s.PGSQL.5432 

您可能還需要chown和chmod鏈接。我不確定是否還必須鏈接.s.PGSQL.5432.lock。

第一個選項更容易。不確定一個或另一個是否更好。

+0

你一定是正確的,當我運行postgres並在psql控制檯中檢查\ conninfo時,我得到: 您通過端口「5432」處的「/ tmp」中的套接字以用戶「stephanecedroni」的身份連接到數據庫「stephanecedroni」 如何更改域套接字你的嗎?不知道如何創建符號鏈接..Thx幫助 –

+0

首先嚐試使用'''host:localhost'''選項,這很容易。如果您需要更多幫助,請發回。 – jcm