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

是否可以从任何地方为PostgreSQL安装仅限客户端的Windows二进制软件?

(为了澄清,我想要标准的PostgreSQL客户端psql——而不是GUI客户端或独立工具).

推荐答案

不幸的是,没有真正的客户端"唯一"安装程序.

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

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

然后从中删除"服务器"部分.

解压后,将得到以下目录:

bin
doc
include
lib
pgAdmin III
share
StackBuilder
symbols

您可以删除docincludepgAdmin IIIStackBuildersymbols目录.据我所知(但我不确定),客户端也不需要sharelib个目录,但您需要进行测试.所以只剩下bin目录.

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

bin目录中,基本上可以删除所有.exe文件(当然psql.exe除外).您还可以删除所有wx*.dll个文件,它们仅用于pgAdmin.libxml2.dlllibxslt.dll也仅用于服务器.

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

  • 垃圾场.exe
  • pg_dumpall.exe
  • pg_恢复.exe

这种方法的一个缺点是,这需要安装VisualC++重新分发.但你也可以通过简单地将安装在某台计算机上的MSVCR120.DLL放入bin目录来克服这个问题.

因此,psql客户端需要这些文件(来自bin目录):

  • iconv.dll(更新的Postgres版本中的libiconv-2.dll)
  • libeay32.动态链接库
  • libintl-8.动态链接库
  • libpq.动态链接库
  • msvcr120.动态链接库
  • ssleay32.动态链接库
  • zlib1.动态链接库
  • psql.exe

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


它显然不是一个真正的安装程序,但是如果你把清理过的目录放进一个ZIP文件中,你就可以分发它,任何需要它的人都可以解压归档文件.我个人认为unzip是最好的"安装程序"(我也用它来安装Postgres服务器,Windows安装程序有太多的怪癖)

Postgresql相关问答推荐

如何使用docker/docker-compose转到本地主机?

在Go中从Kafka读取并写入PostgreSQL时如何处理错误?

Gorm 创建表单数据文件上传错误

Postgres 低估了导致错误查询计划的行数

Postgres 唯一 JSON 数组聚合值

在 KnexJS 中插入

将数组插入 Postgresql 数据库

获取 OperationalError: FATAL: sorry, too many clients already using psycopg2

使用 ON CONFLICT 从 INSERT 返回行,无需更新

如何使 Java 和 Postgres 枚举一起工作以进行更新?

NOT LIKE 带有 NULL 值的行为

设置 Phoenix 框架和 Ecto 以使用 UUID:如何插入生成的值?

使用 RPostgreSQL 写入特定模式

PostgreSQL/JDBC 和 TIMESTAMP 与 TIMESTAMPTZ

在同一台机器上创建多个 Postgres 实例

防止 PostgreSQL 中的递归触发器

在 PostgreSQL 中使用 CASE 一次影响多个列

PostgreSQL 中具有多个连接的 UPDATE 语句

在 docker-compose up 后加载 Postgres 转储

从 ActiveRecord 原始 SQL 获取类型化结果