2012-08-16 55 views
6

我想在我的mac(10.7 Lion)上为rails应用程序本地获取postgres设置。试图在OSX上设置postgres

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

我可以得到它:

psql -h localhost 

但是当我只需运行psql我得到这个错误:

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

我把这个:

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

哪里另一个'psql'来自'/ usr/bin /'中的'psql'吗?预装Mac OS X?来自不同的PostgreSQL包? – 2012-08-16 02:58:30

+0

@CraigRinger我会认为它已经预装了。 – 2012-08-16 03:14:22

+0

'/ Applications/Postgres.app/Contents/MacOS/bin'中是否有psql可执行文件?它应该在那里。如果你尝试运行那个(指定路径),会发生什么? – dezso 2012-08-16 06:30:51

回答

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。您可能需要在Google上花费一些时间。这个链接非常古老,但如果您遇到问题,它可能会让您走上正确的轨道。 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 
+4

Mac OSX配置文件位于/ Users/$ USER/Library/Application Support/Postgres/var – SANDeveloper 2013-09-05 14:31:18

11

我对我的新的MacBook Pro运行的山狮类似的问题。我下载了PostgresApp,当我启动了轨道,我收到以下错误:

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

为了解决这个问题,我不得不明确定义的主机和端口在我database.yml文件像这样:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: my_app_development 
    pool: 5 
    username: tony 
    password: stark  
    host: localhost 
    port: 5432