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

Vit*_*ich 67 postgresql macos psql macos-sierra

官方页面没有提到这种情况.但是许多用户只需要psql没有本地数据库(我在AWS上有它).Brew没有psql.

小智 176

您也可以使用自制软件来安装libpq.

brew install libpq
Run Code Online (Sandbox Code Playgroud)

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

然后,将安装目录添加到路径中.就我而言,目录位置是:

/usr/local/Cellar/libpq/10.3/bin
Run Code Online (Sandbox Code Playgroud)

  • 现在我们处于 M1 世界,二进制文件的正确路径已更改,因此命令是 `echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc` (40认同)
  • 你也可以做'brew link --force libpq`但这会创建一些你可能不需要/不需要的其他符号链接. (13认同)
  • 创建符号链接后就像魅力一样工作:ln -s /usr/local/Cellar/libpq/10.3/bin/psql/usr/local/bin/psql (11认同)
  • 我认为这应该是公认的答案. (10认同)
  • 符号链接 du jour `ln -s /usr/local/Cellar/libpq/11.3/bin/psql /usr/local/bin/psql` / `ln -s /usr/local/Cellar/libpq/11.3/bin/pg_dump / usr/local/bin/pg_dump` / `ln -s /usr/local/Cellar/libpq/11.3/bin/pg_restore /usr/local/bin/pg_restore` (5认同)
  • 不依赖于 libpq 版本的符号链接:`for cmd in psql pg_dump pg_restore; 执行 ln -s ../opt/libpq/bin/$cmd /usr/local/bin/$cmd; 完成` (2认同)

And*_*sky 36

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
Run Code Online (Sandbox Code Playgroud)

现在您可以使用psql连接到远程Postgres服务器,并且不会运行本地服务器,尽管如果您真的想要,也可以.

要验证本地postgres守护程序是否未运行,请检查已安装的自制服务:

$ brew services list
Name       Status  User Plist
mysql      stopped      
postgresql stopped      
Run Code Online (Sandbox Code Playgroud)

如果您没有安装Homebrew Services,只需

$ brew tap homebrew/services
Run Code Online (Sandbox Code Playgroud)

......你会得到这个功能.有关Homebrew Services的更多信息,请阅读这篇精彩的博客文章,了解它的工作原理.

  • 这实际上并没有回答这个问题,归结为“如何在不安装 postgres 的情况下安装 psql(以及其他 postgres 实用程序)”。@PPS 的回答 /sf/answers/3478271261/ 是正确的。 (2认同)
  • IMO,这是更好的选择,因为它不需要“ brew link”步骤。由于公式中的keg_only声明,必须强制使用libpq进行链接(https://github.com/Homebrew/homebrew-core/blob/6a886b97fa4f04525bfeb3fb21c4b79c2ec92a12/Formula/libpq.rb#L13)。鉴于这种特殊的复杂性,我坚持这个答案是做问题所要求的“正确”方法。我认识到,尽管如此,许多用户仍然会喜欢`libpq`方法。 (2认同)

Jos*_*bel 23

如果您真的不需要 postgresql,那么您甚至不必更改使用 libra 的路径,只需链接libpq. 文档说它不是的唯一原因是避免与 PostgreSQL 包发生冲突。

brew uninstall postgresql
brew install libpq
brew link --force libpq
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢我不必手动创建符号链接。这应该是公认的答案。谢谢你! (2认同)

C.K*_*.K. 19

libpq 11.2
MacOS和zsh或bash

下面的作品

  1. 安装 libpq
brew install libpq
Run Code Online (Sandbox Code Playgroud)
  1. 更新路径

    如果使用zsh:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    
    Run Code Online (Sandbox Code Playgroud)

    如果使用bash:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
    source ~/.bash_profile
    
    Run Code Online (Sandbox Code Playgroud)

  • M1 处理器上的“/opt/homebrew/opt/libpq/bin” (11认同)
  • `echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' &gt;&gt; ~/.bash_profile` 如果您使用的是 bash。 (2认同)

小智 18

安装 libpq:

 brew install libpq
Run Code Online (Sandbox Code Playgroud)

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

ln -s /usr/local/opt/libpq/bin/psql /usr/local/bin/psql
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。


J.W*_*lfe 7

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

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

只需运行与psql您正在使用的数据库相匹配的可执行版本,无需任何额外的步骤。

例子:

./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'
Run Code Online (Sandbox Code Playgroud)