首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用NSIS安装postgresql

用NSIS安装postgresql
EN

Stack Overflow用户
提问于 2014-07-08 06:56:55
回答 2查看 2.9K关注 0票数 3

我会用NSIS安装程序安装postgresql,但我不知道如何安装。

你能帮帮我吗?

我找到了这段代码

代码语言:javascript
复制
outfile "C:\project-open\installer\install_postgres.exe"
Name "Install PostgreSQL"

!include Registry.nsh
!include LogicLib.nsh
!include MultiUser.nsh
!include Sections.nsh
!include MUI2.nsh`

!define TARGET c:\project-open

Function .onInit
   StrCpy $INSTDIR "c:\project-open"
FunctionEnd

section
    UserMgr::CreateAccountEx "postgres" "*******" "PostgreSQL" "PostgreSQL Database      User" "Database user created by ]po[ installer" "UF_PASSWD_NOTREQD|UF_DONT_EXPIRE_PASSWD"
pop $R0
DetailPrint "After creating account: result=$R0"`

UserMgr::AddPrivilege "postgres" "SeBatchLogonRight"
pop $R0
DetailPrint "SeBatchLogonRight: result=$R0"

UserMgr::AddPrivilege "postgres" "SeServiceLogonRight"
pop $R0
DetailPrint "SeServiceLogonRight: result=$R0"

nsExec::ExecToLog '"$INSTDIR\pgsql\bin\initdb.exe" --username=postgres --locale=C --encoding=UTF8 -D "$INSTDIR\pgsql\data"'
pop $R0
DetailPrint "After initializing database: result=$R0"

nsExec::ExecToLog 'sc create postgresql-9.2 binpath= "c:\project-open\pgsql\bin\pg_ctl.exe runservice -N postgresql-9.2 -D c:/project-open/pgsql/data -w" DisplayName= "PostgreSQL 9.2" start= "demand" type= own obj= ".\postgres" password= "******" '
pop $R0
DetailPrint "After registering the service: result=$R0"sectionEnd`

但是我对UserMgr::CreateAccountEx有一个问题,但是我已经导入了所需的所有文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-08 14:11:38

您所需要做的就是创建一个数据dir:

代码语言:javascript
复制
initdb -D %PROGRAMDATA%\MyApp\data

然后安装PostgreSQL配置文件和pg_hba.conf,或者对initdb%PROGRAMDATA%\MyApp\data\postgresql.conf%PROGRAMDATA%\MyApp\data\pg_hba.conf自动生成的文件进行任何必要的编辑。

然后:

代码语言:javascript
复制
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE

net start postgres-MyApp

不要使用默认端口5432。运行在不与任何现有或未来的PostgreSQL安装冲突的非默认端口上。另外,不要使用像postgresql-9.2这样的“标准”服务名称。

(NSIS可以提供一个命令来启动服务,而不是使用net start。如果有,请使用适当的NSIS命令)。

请注意,%PROGRAMDATA%只为Windows和更高版本定义(默认情况下它指向%SYSTEMDRIVE%\ProgramData )。您可以在Windows上使用%ALLUSERSPROFILE%,但实际上,现在谁关心XP呢?

就个人而言,我建议在WiX中使用MSI安装程序。

票数 9
EN

Stack Overflow用户

发布于 2021-04-16 03:10:03

对于那些寻找极小的Postgresql 13安装包的人,它只包含以下文件夹:

代码语言:javascript
复制
bin
lib
share

它没有考虑到任何特殊情况。每个单独的设置都必须进行测试,在我的情况下,上面的工作很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24625490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档