如何在Windows上仅安装PostgreSQL的客户端工具?

时间:2015-11-22 12:32:03

标签: windows postgresql

我在Linux系统上有一个PostgreSQL数据库,我想从我的Windows PC上访问它。但我能找到的唯一Windows二进制文件是完整的安装程序,其中包括数据库服务器和客户端。

是否可以从任何地方获得PostgreSQL的仅客户端Windows二进制安装?

(澄清一下,我想要标准的PostgreSQL客户端,psql - 不是GUI客户端或独立工具)。

7 个答案:

答案 0 :(得分:30)

不幸的是,没有真正的客户端“仅”安装程序。

您可以做的是下载完整的Postgres二进制文件的ZIP存档:

http://www.enterprisedb.com/products-services-training/pgbindownload

然后从中删除“服务器”部分。

解压缩后,您将获得以下目录:

bin
doc
include
lib
pgAdmin III
share
StackBuilder
symbols

您可以删除docincludepgAdmin IIIStackBuildersymbols目录。据我所知(但我不确定)客户端也不需要sharelib目录,但您需要测试它。这样只留下bin目录。

我认为share中的本地化错误消息可能需要psql目录,但我不确定。

bin目录中,您基本上可以删除所有.exe文件(当然除了psql.exe)。您还可以删除所有wx*.dll个文件,只有pgAdmin才需要这些文件。只有服务器才需要libxml2.dlllibxslt.dll

如果您确实需要其他一些客户端工具,则可能需要保留

  • pg_dump.exe
  • pg_dumpall.exe
  • pg_restore.exe

此方法的一个缺点是,这需要安装Visual C ++ Redistributable。但是你也可以通过简单地将MSVCR120.DLL从安装它的计算机放到bin目录中来解决这个问题。

因此,您将获得psql客户端所需的这些文件(来自bin目录):

  • iconv.dll
  • 的libeay32.dll
  • 的libintl-8.dll
  • libpq.dll
  • msvcr120.dll
  • ssleay32.dll
  • zlib1.dll
  • psql.exe

当然,您也可以从现有的Postgres安装中获取所有这些,而无需下载ZIP存档。

这显然不是真正的安装程序,但如果您将清理后的目录放入ZIP文件中,您可以分发该文件,只需解压缩存档即可。我个人觉得unzip无论如何都是最好的“安装程序”(我也用它来安装Postgres服务器,Windows安装程序只有太多的怪癖)

答案 1 :(得分:15)

实际上pgAdmin中有客户端CLI工具。您只需从https://www.postgresql.org/download/windows/将其安装在Windows计算机上即可。

然后,您就可以在C:\Program Files (x86)\pgAdmin III\1.22C:\Program Files (x86)\pgAdmin 4\v2\runtime等文件夹中找到这些工具,具体取决于您安装的pgAdmin版本。

答案 2 :(得分:11)

从2020年开始,当您单击从here下载完整的安装程序时,单击“下一步”和“下一步”,您可以选择仅安装命令行-工具 enter image description here。请记住,将路径添加到PATH变量中的bin文件夹中。

答案 3 :(得分:5)

我意识到这是一个较旧的问题,但是当我使用Windows安装程序获得最新版本的Postgres(10.4)时,它让我可以选择只安装命令行工具。当系统提示您选择我要安装的内容时,我只需在安装程序窗口中取消选中serverpgadmin

答案 4 :(得分:3)

感谢在此主题上发布的每个人。

对于它的价值,我从PostgreSQL 10.10的PostgreSQL 10.10中获取了psql.exe,该文件在zip存档中仅包含以下文件:

  

libcrypto-1_1-x64.dll
  libiconv-2.dll
  libintl-8.dll
  libpq.dll   libssl-1_1-x64.dll
  psql.exe

连接到AWS Redshift时,出现以下错误:

  

psql:致命:参数“ client_encoding”的值无效:“ WIN1252”

我通过运行解决了这个问题

set PGCLIENTENCODING=UTF8

我在https://forums.aws.amazon.com/thread.jspa?messageID=600088找到了这个解决方案

HTH。

答案 5 :(得分:1)

下面是我在Windows上使用postgres12 psql连接到Amazon Redshift的步骤:

  1. 从以下位置下载postgres 12.4: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

  2. 运行安装程序,这将需要几分钟,并提示您选择安装选项

  3. 选择command line tools,如下面的屏幕截图所示,并安装

  4. 以上将在文件夹C:\Program Files\PostgreSQL\12\bin下安装postgres12命令行。确保将其添加到您的PATH环境变量中

  5. 打开cmd并运行命令 set PGCLIENTENCODING=UTF8

  6. 运行psql连接到redshift。确保分别更改以下以红色突出显示的集群端点,用户标识,复制脚本文件名和日志脚本文件名的参数 psql -h redshift-cluster-1.abcdefgh.us-east-1.redshift.amazonaws.com -U demo_user -d dev -p 5439 -f d:\demo\redshift_script.sql -L d:\demo\log_redshift_script.log

  7. redshift_script.sql文件中的所有命令都将在PSQL中执行,并且日志将存储在log_redshift_script.log文件中

enter image description here

答案 6 :(得分:0)

如果安装了 pgadmin v4,则只需复制这些库(来自 C:\Program Files\pgAdmin 4\v4\runtime\):

libcrypto-1_1-x64.dll
libpq.dll
libssl-1_1-x64.dll

这些足以让我从客户端 Windows 10 x64 PC 连接到远程 Postgres 13 服务器。请注意,上述 ZIP 存档附带的库略有不同,并且具有更多依赖项。