我试图在我的mac(10.7 Lion)上为本地的rails应用程序设置postgres.
我安装了postgresapp并启动它,我现在在我的状态栏中有一只大象告诉我postgres正在运行.
我可以通过以下方式达到:
psql -h localhost
Run Code Online (Sandbox Code Playgroud)
但是,当我只是运行时,psql我得到这个错误:
psql:无法连接到服务器:Permission denied服务器是否在本地运行并接受Unix域套接字"/var/pgsql_socket/.s.PGSQL.5432"上的连接?
我把它说:
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
在~/.bashrc并开辟了一个新的终端.但没有骰子.
当我跑步时,which psql我得到了/usr/bin/psql
不确定该怎么做..我对unix系统还是个新手.我应该符号链接/usr/bin/psql到/Applications/Postgres.app/Contents/MacOS/bin/psql?
Mic*_*ton 11
我在运行Mountain Lion的新MacBook Pro上遇到了类似的问题.我下载了PostgresApp,当我启动rails时,我收到以下错误:
`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"?
Run Code Online (Sandbox Code Playgroud)
要解决这个问题,我必须在我的database.yml文件中明确定义主机和端口,如下所示:
development:
adapter: postgresql
encoding: unicode
database: my_app_development
pool: 5
username: tony
password: stark
host: localhost
port: 5432
Run Code Online (Sandbox Code Playgroud)
这个错误非常具体,可以告诉您出了什么问题,但如果您是 unix 新手,那么它就不那么明显了。
我在这里给出了类似的答案:
问题
您无权访问(“socket”)文件/var/pgsql_socket/.s.PGSQL.5432
修理:
检查您是否至少有权访问该目录。在命令行上使用:
ls -l /var/pgsql_socket/.s.PGSQL.5432
Run Code Online (Sandbox Code Playgroud)
如果没有,这将导致“权限被拒绝”。您可能已经有权访问此文件,而这只是您无权访问的套接字文件。
套接字文件本身是由 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8108 次 |
| 最近记录: |