Postgresql,更新gem后的问题

时间:2012-02-18 17:33:33

标签: ruby-on-rails macos postgresql gem osx-lion

我刚刚更新了我的宝石。现在我连接到postgresql数据库时遇到问题。我收到错误:

PGError

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"?

我尝试卸载gem并重新安装,我也尝试更改路径文件并将'/ usr / local / bin /'放在顶部。我从帖子中尝试了一些东西:

Repairing Postgresql after upgrading to OSX 10.7 Lion

此应用程序在更新我的宝石之前工作正常,其他应用程序仍然可以正常连接到同一台服务器。我的database.yml文件中有相同的设置..可能出错?

1 个答案:

答案 0 :(得分:1)

错误来自PostgreSQL服务器,我已多次看到它。它告诉您,您正尝试通过Unix域套接字(而不是通过TCP / IP!)连接到运行本地并在端口5432 监听的服务器。但是找不到可以接受类似连接的服务器。

您没有提到PostgreSQL服务器所在的位置 - 我假设您实际上是指连接到本地计算机上的数据库服务器。

检查您的设置,尤其是您的pg_hba.conf文件。你需要一行:

local      mydb    myuser     md5

local      all      all       peer

或包含您的用户和数据库的其他一些连接方法。

在您的情况下,这些帮助:

host ...

hostssl ...

它们涉及TCP / IP连接,而不是通过UNIX域套接字的本地连接。当您连接到 localhost 时,您实际上通过本地循环使用TCP / IP并应用这些设置。

请务必在修改pg_hba.conf后重新加载。我引用链接网站上的手册:

  

如果您在活动系统上编辑文件,则需要发出信号   postmaster(使用pg_ctl reload或kill -HUP)使其重新读取   文件。