0

我正在尝试在 Windows 上安装 postgres 企业数据库。我给出了一个带有安装参数的选项文件。但是,我不想安装为 Windows 应用程序,而只想提取二进制文件。我有以下选项:

superaccount=dbadmin

但是当我指定extract-only=yes选项时,上面的参数被忽略了。我创建了数据目录,并手动启动了 pg_ctl。因此,当我在 bin 文件夹中打开 pgadmin3 并连接到它时,我看到没有登录角色“dbadmin”。相反,默认管理员用户是我的系统用户帐户名。所以我手动创建了这个角色并尝试删除默认的系统角色。当我尝试删除时,我收到错误“错误:无法删除角色,因为数据库系统需要它”。

所以我的问题是:我可以只提取 postgres 的二进制文件并将默认 db 用户名设置为“dbadmin”角色吗?或者我在这里错过了什么?

编辑:另外,当我们正常安装时,我们会给出一个端口号。但是当我只提取二进制文件时,pg_ctl、psql 等工具会查找默认端口 (5432)。当我只提取二进制文件时如何设置这些默认值?

编辑 2:我正在尝试做安装程序通常会做的所有事情,除了一些其他的事情,比如创建注册表项、开始菜单快捷方式等。

4

2 回答 2

0

首先,考虑使用 .zip 包,而不是“仅提取二进制文件” 。

如果您要绕过安装程序,您需要愿意阅读文档。看:

您可以在 initdb-time 指定超级用户名,它显示在上面链接的手册中。

如果您想为工具设置不同的默认端口,您可以设置PGPORTenv var,但请不要这样做。只需在命令行上为工具的每次调用明确指定端口或PGPORT在每次调用之前覆盖。这样你就不会踩到用户现有的 PostgreSQL 安装。如果他们安装了您的应用程序,突然他们所有的 PostgreSQL 工具都指向不同的数据库,他们不会对您感到满意。

于 2013-08-09T01:52:49.790 回答
0

好的,我现在开始工作了。基本上我试图做 postgres 安装程序通常做的所有事情,除了制作注册表项和快捷方式。因此,我通过查看 temp\install-postgres.log 文件了解了安装程序的作用。它基本上执行一堆 vb 脚本。提取二进制文件后,您需要按此顺序执行以下脚本。这些脚本可在 \installer\server 中找到。

  • vcredist_x64
  • 初始化集群.vbs
  • 启动cfg.vbs
  • 启动服务器.vbs
  • 加载模块.vbs

所有这些脚本都需要命令行参数。进行正常安装,然后查看 install-postgres.log 文件以了解如何执行这些。

于 2013-08-09T15:08:37.380 回答