无法在正确的路径上识别Postgresql

时间:2012-07-05 16:41:04

标签: ruby-on-rails database postgresql heroku

我正在尝试使用postgresql设置一个新的应用程序,以便我可以使用Heroku进行部署。但是,当我使用'rails server'运行应用程序时,我对rails屏幕的欢迎会出现此错误:

  

PG ::错误

     

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

我确定这与此处涉及的问题相同:

Repairing Postgresql after upgrading to OSX 10.7 Lion

但John Wang的修复不起作用。

我尝试将'export PATH = / usr / local / bin:$ PATH'添加到.bash_profile,.bashrc和.zshrc,其中没有一个会改变结果。调用哪个psql总是返回/ usr / bin / psql。

我在这里做错了什么?任何帮助将不胜感激!

修改

运行/ usr / local / bin / psql会出现同样的错误并且运行echo $ PATH会给出:

  

/opt/local/bin:/opt/local/sbin:/Users/dave/.rvm/gems/ruby-1.9.3-p194/bin:/Users/dave/.rvm/gems/ruby-1.9 0.3-P194 @全球/斌:/Users/dave/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/dave/.rvm/bin:在/ usr / bin中:/ bin中:在/ usr / sbin目录:/ sbin目录:在/ usr / local / bin中:在/ usr / X11 / bin中:/Users/dave/.rvm/bin

1 个答案:

答案 0 :(得分:2)

如果直接运行本地安装的psql会发生什么?

/usr/local/bin/psql ...

如果可行,那么这就是你需要改变的路径。您可以尝试在终端中运行导出,然后which psql。如果没有选择正确的psql,请检查导出是否与

一起使用
echo $PATH

我不确定你需要更新哪个.xxrc文件 - 我没害怕,但至少你知道命令会起作用。

哦 - 我保留了几个不同版本的PostgreSQL,并发现设置一些别名很有用:

alias psql90='/usr/local/pgsql90/bin/psql -p 5490'
alias psql84='/usr/local/pgsql84/bin/psql -p 5484'
alias pg_dump90=...

您的$PATH只是一个要用“:”分隔的目录列表。它从/opt/local/bin开始而不是/usr/local/bin,如果你继续向前看,你会看到/usr/bin出现在/usr/local/bin之前。所以 - 我们需要做两件事:

  1. 找出我们真正想要的psql
  2. 确保我们可以编辑PATH
  3. 首先 - 找到你的postgresql.conf文件并检查你正在运行的端口。有三个项目:listen_addressesportunix_socket_directory。然后我们会看看那里是否有插座。

    ls -a <your unix_socket_directory>
    

    您应该看到类似“.s.PGSQL.5432”的“文件”,其中5432是配置文件中的端口号。如果没有这样的文件,它就没有运行,是时候让它运行了。如果匹配Apple的现有用法,您可能需要更改配置文件中的端口号。

    然后找到存在的psql安装

    find /usr -type f -name psql
    find /opt -type f -name psql
    

    尝试找出你需要的那个,或许添加--version来帮助。

    然后,让我们看看编辑你的PATH。无论如何,您必须在设置文件中进行一些更改,所以让我们看看我们是否可以找到该设置的位置。

    grep -l 'local/bin' ~/.*rc
    

    应列出包含local / bin的文件名 - 查看是否正在编辑PATH。