问题
在安装PostgreSQL数据库时出现了Problem running post-install......的问题,尝试了很多个版本,从11到14都安装了一遍都是同样的问题。
问题分析
这个问题主要是由于安装后,系统用户没有安装文件夹内的程序的执行权限。这个时候一般程序已经安装完成,但是还没有初始化数据和注册服务。网上很多博文都是说给文件夹添加权限,然后重新安装。本人亲测,添加权限后,是没有办法运行安装包,继续安装的,会提示你选择的文件夹非空的。下面我简单记录一下我的解决方案,安装失败后,执行下面的操作。
解决方案
给pg的安装文件夹添加权限,一定要允许users用户组完全控制pg的安装目录和其下级的子文件夹。如果你的安装文件夹路径里带有版本号,如PostgreSQL/14/,一定要在14的文件夹上再验证一次看看user用户是否有权限。可以参考这里,但一定不要用它的最后一步。
2. 添加完权限后,以管理员的身份运行CMD,然后cd到pg安装目录下的bin文件夹内,执行初始化数据库的命令,详细用法可参考参考博文
initdb.exe -D ../data -W -U postgres
1
在这期间cmd或让你设置postgres用户对应的密码,要记住,否则你将无法登陆数据库了。
执行第二步没有问题后,注册数据库服务。
pg_ctl.exe register -N "pgsql" -D 此处填写data目录地址
例如:
pg_ctl.exe register -N "pgsql" -D "I:\postgresql\data"
1
2
3
4
如果注册失败了,或者想删除服务,可以使用如下命令
# 取消注册服务,最后是服务名,
pg_ctl unregister -N postgresql-9.2
1
2
上述命令用法可参考参考博文
4. 在window服务面板里,主要3中注册的服务,右键启动就可以了,这时候数据库服务实例就启动完成了,可以正常连接了。
评论