安装postgres 9.2作为仅提取时如何设置superaccount

时间:2013-08-08 18:13:13

标签: postgresql postgresql-9.2

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

superaccount=dbadmin

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

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

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

编辑2:我正在尝试执行安装程序通常执行的所有操作,除了一些其他操作,例如创建注册表项,启动菜单快捷方式等。

2 个答案:

答案 0 :(得分:0)

首先,不要“仅提取二进制文件”,而应考虑using the .zip bundle

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

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

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

答案 1 :(得分:0)

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

  • vcredist_x64
  • initcluster.vbs
  • startupcfg.vbs
  • startserver.vbs
  • loadmodules.vbs

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