试图在OSX上设置postgres

时间:2012-08-16 02:42:29

标签: macos postgresql

我正在尝试在我的mac(10.7 Lion)上为本地的rails应用程序设置postgres。

我安装了postgresapp并启动了它,我现在在我的状态栏中有一只大象告诉我postgres正在运行。

我可以通过:

来实现
psql -h localhost

但是,当我只是运行psql时,我收到此错误:

  

psql:无法连接到服务器:权限被拒绝是服务器   在本地运行并接受Unix域套接字上的连接   “/var/pgsql_socket/.s.PGSQL.5432”?

我说这个:

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

~/.bashrc并打开一个新终端。但没有骰子。

当我运行which psql时,我得到/usr/bin/psql

不确定该怎么做..我仍然是unix系统的新手。我应该将/usr/bin/psql符号链接到/Applications/Postgres.app/Contents/MacOS/bin/psql吗?

1 个答案:

答案 0 :(得分:4)

此错误非常具体,可以告诉您错误,但如果您是unix的新手,那么它就不那么明显了。

我在这里给出了类似的答案:

Can not connect to local PostgreSQL

问题

您无法访问("套接字")文件/var/pgsql_socket/.s.PGSQL.5432

要修复:

检查您是否至少有权访问该目录。在命令行上使用:

ls -l /var/pgsql_socket/.s.PGSQL.5432

这将导致"权限被拒绝"如果不。您可能已经有权访问此内容,而且它只是您未获得许可的套接字文件。

套接字文件本身是由postgresql在启动时创建的。

追踪postgres的主要配置文件(postgresql.conf)。 这本身可能很难,我是一个Linux用户而不是OSX。你可能需要花一些时间在谷歌上。此链接相当陈旧,但如果您遇到问题,可能会让您走上正轨。 http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html

一旦你找到它,找到postgresql.conf中的行,他们应该说:

unix_socket_directory = '/var/pgsql_socket'    # dont worry if yours is different
#unix_socket_group = ''                        # default is fine here
unix_socket_permissions = 0777                 # check this one