正确的方法安装 psql 没有完整的 Postgres 在 MacOS?

官方网页 不提及此类案件。但是许多用户只需要没有本地数据库的 psql(我在 AWS 上有它)。酿造没有 psql

184035 次浏览

你可以试试brew install postgresql

但是这提供了一个很好的GUI来管理你的数据库https://postgresapp.com

Homebrew实际上只有postgres公式,并且没有任何只安装psql工具的特定公式。

因此,获得psql应用程序的“正确方法”确实是安装postgres公式,你会在“警告”部分的底部看到,它实际上并不运行数据库,它只是将文件放在你的系统上:

$  brew install postgres
==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.6.5.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring postgresql-9.6.5.sierra.bottle.tar.gz
==> /usr/local/Cellar/postgresql/9.6.5/bin/initdb /usr/local/var/postgres
==> Caveats
<snip>
To have launchd start postgresql now and restart at login:
brew services start postgresql
Or, if you don't want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgres start
==> Summary
🍺  /usr/local/Cellar/postgresql/9.6.5: 3,269 files, 36.7MB

现在你可以使用psql来连接到远程Postgres服务器,并且不会运行本地服务器,尽管如果你真的想这样做,你可以这样做。

要验证本地postgres守护进程没有运行,请检查已安装的自制服务:

$ brew services list
Name       Status  User Plist
mysql      stopped
postgresql stopped

如果你没有安装家酿的服务,只要

$ brew tap homebrew/services

...你会得到这个功能。有关家酿的服务的更多信息,请阅读这篇精彩的博客文章解释了它是如何工作的

您还可以使用自制程序安装libpq。

brew install libpq

这将为您提供psql、pg_dump和一大堆其他客户端实用程序,而无需安装Postgres。

不幸的是,由于它提供了一些与完整的postgresql包中包含的相同的实用程序,brew只能以“桶”的方式安装它;这意味着默认情况下它不在PATH中。Homebrew将在安装后提供一些关于如何将其添加到PATH的信息。在我的例子中是这样的:

echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc

或者,您也可以为所需的实用程序创建符号链接。例如:

ln -s /usr/local/Cellar/libpq/10.3/bin/psql /usr/local/bin/psql

请注意:使用安装版本而不是10.3。

或者,您可以指示homebrew“无论如何都将其所有二进制文件链接到PATH”。

 brew link --force libpq

但是之后你将无法安装postgresql包。

< p > 11.2 libpq < br > MacOS,ZSH或bash

下面的工作

  1. 安装libpq
brew install libpq
  1. < p >更新路径

    如果使用zsh:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    

    如果使用bash:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
    source ~/.bash_profile
    

安装libpq:

 brew install libpq

然后,创建一个符号链接:

sudo ln -s $(brew --prefix)/opt/libpq/bin/psql /usr/local/bin/psql

希望能有所帮助。

如果你真的不需要postgresql,那么你甚至不需要改变你的路径来使用libra,只需要链接libpq。文档中说,不这样做的唯一原因是为了避免与PostgreSQL包冲突。

brew uninstall postgresql
brew install libpq
brew link --force libpq

我发现所有这些都不太令人满意,特别是如果你必须支持多个版本的postgres。一个更简单的解决方案是在这里下载二进制文件:

https://www.enterprisedb.com/download-postgresql-binaries

并且只需运行与你正在使用的数据库相匹配的psql的可执行版本,而不需要任何额外的步骤。

例子:

./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'

在这里找到了很多有用的答案,但有点过时,因为homebrew将安装文件移动到/opt/homebrew/Cellar/libpq/15.1。使用brew install libpq安装libpq后,可以运行以下命令查看新位置

brew link --force libpq

然后您可以将它添加到您的zshrc

echo 'export PATH="/opt/homebrew/Cellar/libpq/15.1/bin:$PATH"' >> ~/.zshrc