为什么即使在运行时也不能使用postgres?

时间:2012-11-26 23:58:20

标签: ruby-on-rails postgresql database-connection

  

可能重复:
  PostgreSQL Permission denied Error on Unix domain socket “/var/pgsql_socket/.s.PGSQL.5432” - Lion Server 10.7.3 or Lion Server 10.7.4

我正在使用postgres作为Rails的后端数据库,但由于配置错误问题它已停止工作,但我看不出它是什么。

我的postgres版本是9.1.4,并安装在/ usr / bin

我正在运行ruby版本1.9.3,但我必须在rvm中手动切换到它,因为默认的1.8.7是出现的。

我正在运行Rails 3.2.8

我的配置文件pg_hba.conf如下所示:

# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

postgres.conf文件中的大多数行都被注释掉了,除了一些无关紧要的行,如:

log_destination = 'stderr'
listen_addresses = '*'   
port = 5432                             
max_connections = 100                  

我还为Mac安装了“Postgres App”(请参阅​​postgresapp.com/documentation),它说它正在运行并侦听端口5432.

当我运行ps -ax |时grep post我看到了:

1088 ??         0:00.08 com.heroku.postgres-service
 1135 ??         0:00.29 /Applications/Postgres.app/Contents/MacOS/bin/postgres -D /Users/rickc/Library/Application Support/Postgres/var -p5432
 1137 ??         0:01.14 postgres: writer process      
 1138 ??         0:00.78 postgres: wal writer process      
 1139 ??         0:00.20 postgres: autovacuum launcher process      
 1140 ??         0:00.26 postgres: stats collector process      

但是当我尝试在localhost:3000启动rails connect时,我收到以下错误消息: PG ::错误

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

我试图在这里检查以前的帖子,当然postgres文档,不能完全看到这里的配置错误;任何帮助非常感谢...

1 个答案:

答案 0 :(得分:-1)

这是一个postgres问题,而不是rails / ruby​​问题。

要向自己证明,打开终端并执行

psql -U username -W db_name

username是您的用户名,db_name是数据库的名称。

您应该收到“无法连接到服务器”错误。

这是你做的:

  • tail您的帖子登录终端窗口
  • 重新启动postgres并观看终端

您将在日志中看到问题。如果您无法找出问题,请发布日志的相关部分,我们将会看一下。