Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在windows server 2008上安装postgresql时出现问题_Windows_Postgresql - Fatal编程技术网

在windows server 2008上安装postgresql时出现问题

在windows server 2008上安装postgresql时出现问题,windows,postgresql,Windows,Postgresql,我试图在Windows Server 2008上安装PostgreSQL 9.0.1,但每次都会出现这样的错误消息 “运行安装后步骤时出现问题。安装可能未完成 正确。无法启动数据库服务器“ 在安装日志中,这是由于initdb.exe中出现故障造成的,错误为 initdb需要postgres程序,但在中找不到该程序 与D:\PostgreSQL\9.0\bin\initdb.exe目录相同,请检查您的 安装。” 我在internet上搜索了此类错误,并尝试在“”页中找到解决方案,但没有任何帮助 在

我试图在Windows Server 2008上安装PostgreSQL 9.0.1,但每次都会出现这样的错误消息

“运行安装后步骤时出现问题。安装可能未完成 正确。无法启动数据库服务器“

在安装日志中,这是由于
initdb.exe
中出现故障造成的,错误为

initdb需要postgres程序,但在中找不到该程序 与D:\PostgreSQL\9.0\bin\initdb.exe目录相同,请检查您的 安装。”

我在internet上搜索了此类错误,并尝试在“”页中找到解决方案,但没有任何帮助

在阅读了
initdb
的代码后,我知道这是由函数pipe\u read\u行中的windowapi CreateProcess引起的。对CreateProcess的调用返回了-5(访问被拒绝)。这是因为initdb是在函数CreateRestrictedProcess中调用的子流程中执行的。 我知道这是由于特权设置,我运行gpedit.msc将用户组(甚至所有人)添加到几乎所有的特权策略中,但错误仍然存在

我还将安装目标文件夹的完全控制权分配给了所有人,没有帮助

我还尝试了postgresql 9.6.2,错误仍然存在:-)

从代码中,我知道如果有值为1的环境变量
PG_RESTRICT_EXEC
,initdb将不会在受限进程中执行。所以在运行initdb.exe之前,我在命令提示符中设置了一个环境PG_RESTRICT_EXEC=1,然后运行initdb.exe。这一次这样的错误消失了


因此,我想知道如何更改操作系统设置,使安装运行无误

可能与此无关,但:为什么要安装过时且不受支持的Postgres版本?Windows中的安装问题通常是由防病毒引起的。尝试在安装期间禁用它,并从扫描中排除postgres二进制文件和数据目录。也不要将数据目录放入
c:\Program Files
,这很可能是“访问被拒绝”的原因。服务器来自一个使用旧版本服务器的客户。服务器来自一个使用旧版本服务器的客户。即使我尝试9.6.2,问题仍然存在。我将安装目标文件夹更改为D:\postgres,数据文件夹也不在programFiles文件夹下。今天,我也尝试了解决方案,问题仍然存在。我使用命令“runas/user:postgres cmd.exe”打开控制台,当尝试执行任何exe文件时,将出现错误“拒绝访问”。但我已将文件夹的全部权限分配给该用户。我几乎疯了:-(