10

我刚刚安装了 heroku PSQL 应用程序(v1.0),我无法使用 gem pg“0.1.4”连接我的 rails 应用程序。我已经将路径 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 添加到我的 .profile 和 .bashrc 文件中,但似乎没有什么能让我通过调用“psql”来运行 psql。我使用“psql -h localhost”成功了。当我选择“psql”时,我得到:

Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

我用的是山狮。

4

4 回答 4

12

仍然很确定现有的两个答案都在回答错误的问题。作者在标题中提到他遇到了PATH问题,没有连接到他的数据库或配置 rails。这就是我遇到的情况,这就是我的解决方案。

按照 postgress.app 文档中的指示运行 postgres.app 并在我的 .bashrc 文件中设置PATH - http://postgresapp.com/documentation

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

问题是这个路径设置在重新启动 terminal.app 后没有生效 - 运行 which psql 正在返回“/usr/bin/psql”中的副本,这是 Lion 和 Mountain Lion 附带的副本,而不是新的安装在“/Applications/”中的版本。它甚至在 Postgres.app 说明中说“运行 which psql 以告知正在加载正确的版本”。

无论如何 - 我发现奇怪的是,在我跑步之后:

source .bashrc

然后命令“which psql”将返回位于 /Applications/ 中的正确版本。

在这一点上,我被难住了,不得不得到一些额外的帮助。我点击的人也认为这很奇怪,但是他们很快发现.bashrc 或 .profile 文件都没有被加载。这很奇怪,我还没有在我的任何其他 Mac 上看到这个通过狮子运行豹。

现在终于解决了-我不确定这是否正确,但它确实永久解决了我的问题。我们发现它们是一个正在加载到终端的配置文件 - .bash_login文件。最后的解决方案就是使用 .bash_login 来获取 .bashrc 文件。这是对 .bash_login 的编辑:

source $HOME/.bashrc

并且做到了。

无论如何,我不能说这正是 diego 需要/正在寻找的解决方案,但这绝对是我的问题。

于 2012-09-17T02:02:25.330 回答
4

您需要添加host:localhost到您在开发环境中使用的任何数据库配置(阅读开发/测试/生产/等):

配置/数据库.yml

development:
  adapter: postgresql
  encoding: unicode
  database: my_awesome_app_development
  pool: 5
  host: localhost
  username: my_awesome_app_development
  password:

编辑:另见升级到 OSX 10.7 Lion 后修复 Postgresql

于 2012-07-27T20:12:44.140 回答
2

我知道这是一个老问题,但我也遇到了同样的问题。问题是文档中有错字。该应用程序是 Postgres93.app,而不是 Postgres.app,所以路径应该有 Postgres93.app:

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

令人惊讶的是有多少关于此的帖子,而且似乎还没有注意到错字。改变这就是我获得psqlwhich psql正确工作所需要的一切。

于 2014-01-20T01:47:06.577 回答
1

您的 PATH 可能是错误的。要找出 psql 脚本的 PATH(在 mac 上),请从 Applications/Postgres 安装中的 finder 打开 sql shell 脚本。这将为您提供有关其安装位置的提示。这打开了一个窗口,告诉我它位于此处:/Library/PostgreSQL/8.4/scripts/runpsql.sh

然后,我在终端窗口中输入以下内容来设置 PATH 变量:
$ PATH="/Library/PostgreSQL/8.4/bin:$PATH"

于 2013-05-29T13:28:02.070 回答