我正在尝试在Windows上安装postgres企业数据库。我给出了一个带有安装参数的选项文件。但我不想安装为Windows应用程序,而是想提取二进制文件。我有以下选项:
superaccount=dbadmin
但是当我指定extract-only=yes
选项时,将忽略上述参数。我创建了数据目录,并手动启动了pg_ctl。因此,当我在bin文件夹中打开pgadmin3并连接到它时,我看到没有登录角色“dbadmin”。相反,默认管理员用户是我的系统用户帐户名。所以我手动创建了这个角色,并试图删除默认的系统角色。当我尝试删除时,我收到错误“错误:无法删除角色,因为它是数据库系统所必需的。”
所以我的问题是:我可以只为postgres提取二进制文件并将默认的db用户名设置为“dbadmin”角色吗?或者我在这里遗漏了什么?
编辑另外,当我们正常安装时,我们会提供一个端口号。但是当我只提取二进制文件时,像pg_ctl,psql等工具会查找默认端口(5432)。当我只提取二进制文件时,如何设置这些默认值?
编辑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。
中所有这些脚本都需要命令行参数。进行正常安装,然后查看install-postgres.log文件以了解如何执行这些文件。