安装了Postgres.app但它无法工作

31

我刚安装了Postgres.app在我的Mac上,但它无法正常工作。 我已经完成了安装,应用程序图标出现在菜单栏上,并且显示它正在监听端口 5432,但是如果我尝试从命令行运行它,会发生以下情况:

~ $ psql
zsh: correct 'psql' to 'sl' [nyae]? n
zsh: command not found: psql

我之前使用Homebrew安装过PostgreSQL,但现在已经删除,并安装了Postgres.app。 我正在运行Mac OS X Lion。

感谢任何帮助,我真的想在我的机器上运行PostgreSQL。

7个回答

65

在Postgres.app中,psql二进制文件位于应用程序包中,您需要将相应的目录添加到PATH中。根据详细手册

配置你的$PATH

Postgres.app包含许多命令行工具。如果您想使用它们,必须配置$PATH变量。

如果您使用的是bash(OS X上的默认shell),请将以下行添加到~/.bash_profile:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

因此,请在您的zsh配置文件中调整PATH设置,以包含

Contents/Versions/latest/bin 

在您的Postgres.app软件包中的目录内。


1
如果需要更多细节,请发布一个新问题。@rodrigoalvesvieira - Craig Ringer
1
请注意,对于当前版本的Postgres.app,正确的路径为“/Applications/Postgres93.app/Contents/MacOS/bin”。 - NSTJ
我应该将其添加到.bash_profile中,还是ZSH有自己的配置文件?如果有,那么它存储在哪里? - andilabs
2
今天的bin目录位置是: /Applications/Postgres.app/Contents/Versions/9.3/bin - Kummo
2
今天它是/Applications/Postgres.app/Contents/Versions/latest/bin - michele b
显示剩余3条评论

24

截至2014年4月,就我的Postgres应用程序而言,您必须包含在路径中的目录略有不同。

我必须包含以下内容:

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

现在我可以在终端上运行psql。


这个解决方案对我有效。第一个使用 ..Contents/MacOS/bin 的方法没有用。 - Aaron Lelevier

6
你应该使用 /latest 而不是 version,这样在更新 Postgres 时就不需要再次更改它。
操作方法: http://postgresapp.com/documentation/cli-tools.html,然后运行:
. ~/.bash_profile

重新加载.bash_profile并更新您添加的任何函数。

6
在zsh shell中,您需要修改.zshrc文件:
PSQL_PATH="/Applications/Postgres.app/Contents/Versions/latest/bin"
PATH="$PATH:$PSQL_PATH"

提示符:

exec $SHELL
which psql

1

这可能听起来很愚蠢,但我想知道您在哪里安装了Postgres.app?正如“mu is too short”所建议的那样,文档提到将/Applications/Postgres.app/Contents/MacOS/bin添加到您的路径中。但是,这需要您已经将Postgres.app安装在/Applications/文件夹中。

在尝试通过Google和Stack Overflow等资源找到更复杂的解决方案之前,您应该确保已将Postgres.app安装到正确的位置。这可能只需将Postgres.app移动到/Applications/即可,因为psql将在/Applications/Postgres.app中找到,而不是其他任何地方。

或者,您可以使用任何路径来访问Postgres.app。因此,如果您希望将其放在主目录中,则可以使用export PATH="~/Postgres.app/Contents/MacOS/bin:$PATH"

希望对您有所帮助。


顺便说一句,这个答案或多或少是为那些将来偶然发现这个问题的人而写的,因为我认为原作者已经在3个月后解决了他们的问题。 - glevine

0

我之前是Ubuntu用户,现在使用OSX。尝试直接从打开的终端中运行"which sql"和"pg_restore"命令失败了。我点击了大象图标并通过"Open psql"打开了一个终端。一旦我退出了psql控制台并在该终端中输入了这些命令,它们都可以正常工作。


-1
在ZSH终端上,在尝试上述解决方案之前,您首先需要安装Postgres。使用Hombrew时, 首先输入以下命令:

brew install postgres 然后通过 which psql 命令检查是否已安装。


Postgress.app 建议删除通过 brew 安装的任何 postgres 安装程序。这样就不会有冲突的服务器或服务运行,但是你会失去 cli 工具。不过说实话,我正在通过 brew 重新安装它,以便快速访问我的工具,但是我意识到需要:确保版本匹配,确定我想要作为服务运行的 postgres 是哪个(brew 还是 postgressapp)。 - CTS_AE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接