Dav*_*e G 196 postgresql macos ruby-on-rails ruby-on-rails-3 osx-lion
我最近升级到OSX 10.7,此时我的rails安装在尝试连接到psql服务器时完全被堵塞了.当我从命令行使用时
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是当我尝试使用相同的用户名和密码运行rails服务器或控制台时,我收到此错误
...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)
任何可能发生的想法都会非常有用!谢谢!
Joh*_*ang 291
这是一个PATH问题.Mac OSX Lion现在包含系统中的Postgresql.如果你这样做,which psql
你可能会看到usr/bin/psql
而不是usr/local/bin/psql
HomeBrew的正确版本.如果你运行,brew doctor
你应该收到一条消息,说明你需要添加usr/local/bin
到PATH env变量的头部.
编辑.bash_profile或.profile,或者您正在使用的任何shell并添加:
export PATH=/usr/local/bin:$PATH
作为当时的第一个导出PATH
要么退出shell会话,要么用你的文件来源source ~/.bash_profile
,现在它应该再次正常.
Dav*_*e G 90
对于那些感兴趣的人,我拼凑了解决方案.我只需要添加
host: localhost
Run Code Online (Sandbox Code Playgroud)
到我的环境的database.yml,所有都是肉汁.
Ben*_*Ben 46
我对Mountain Lion遇到了这个问题,但唯一对我有用的是这个修复:
检查实际目标的位置:
sudo find / -name .s.PGSQL.5432
Run Code Online (Sandbox Code Playgroud)
我需要创建这个目录:
mkdir /var/pgsql_socket/
Run Code Online (Sandbox Code Playgroud)
然后使用上面的find中的结果创建此符号链接:
ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
Run Code Online (Sandbox Code Playgroud)
我怀疑对于Mountain Lion上的大多数人来说,你可以创建dir并执行符号链接,而不是浪费时间进行查找,除非符号链接不起作用.
PS - 我的PostgreSQL是通过官方安装程序安装的.
小智 29
如果问题在改变路径后仍然存在(就像它对我而言),也可以试试这个...
gem pristine pg
Run Code Online (Sandbox Code Playgroud)
似乎(部分)问题在于pg gem本身.在构建时,它会确定域套接字应该在哪里.如果更改域套接字的位置,则在重建gem之前它似乎不会生效.
小智 15
对于直接从官方安装程序安装的用户,只需将主机添加到该命令即可,无需更改路径:
psql -h localhost -U postgres
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,并且在让John Wang的解决方案工作时遇到了问题.正如Darren所说,pg gem存在问题.为了使它工作,我需要:
gem uninstall pg
Run Code Online (Sandbox Code Playgroud)
然后重新安装.
哪有它的工作.
归档时间: |
|
查看次数: |
60908 次 |
最近记录: |