![Windows 10 中的 PostgreSQL 安装失败(icacls 错误/访问被拒绝)](https://linux22.com/image/1601843/Windows%2010%20%E4%B8%AD%E7%9A%84%20PostgreSQL%20%E5%AE%89%E8%A3%85%E5%A4%B1%E8%B4%A5%EF%BC%88icacls%20%E9%94%99%E8%AF%AF%2F%E8%AE%BF%E9%97%AE%E8%A2%AB%E6%8B%92%E7%BB%9D%EF%BC%89.png)
尝试在 Windows 10 计算机 (x64) 上安装 PostgreSQL 时出现以下错误。有人能帮我解决问题吗?非常感谢!错误截图如下:
答案1
我尝试在 上安装postgresql-10.10-1-windows-x64
和。得到了类似的错误。postgresql-11.5-1-windows-x64
Windows 10 x64
尝试postgresql-11.2-1-windows-x64
从以下官方链接下载:
https://get.enterprisedb.com/postgresql/postgresql-11.2-1-windows-x64.exe
希望这可以帮助。
答案2
我也遇到过这种情况。结果我无法使用域用户(即使它是本地计算机上的管理员)。我必须以本地管理员用户身份登录,然后安装才能成功。这很奇怪。
答案3
我尝试在 Windows 10 x64 上安装 Postgresql-9.5.19.1-windows-x64 版本(从官方页面下载),但出现了同样的错误。我尝试以管理员权限执行它,授予临时文件夹权限,将临时文件夹移动到另一个位置,但没有任何效果...
对我来说,解决方案是使用 9.5 的不同版本:PostgreSQL-9.5.2-1-windows-x64。
答案4
如果您在安装后或重新安装 postgres 后遇到权限问题,您可以在这里找到帮助。
确保为您拥有的数据文件夹安装了正确的版本,您可以在名为 PG_VERSION 的文件下检查该数据文件夹中的版本。
- 使用随机数据目录安装 postgres。如果它不适用于旧数据目录,并且您收到有关权限或 icacls 之类的错误,请选择一个新文件夹并继续阅读本文。
- 转到注册表编辑器,然后找到类似
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\postgresql-x64-11
<- 您安装的版本,更改 imagepath 以反映数据目录"C:\Program Files\PostgreSQL\11\bin\pg_ctl.exe" runservice -N "postgresql-x64-11" -D "{DATA_DIRECTORY like d:/db}" -w
- 此时服务可能还没有启动,但请检查一下,以防它在这个阶段奇迹般地工作。它不会记录任何内容或抛出任何错误,所以不用担心,如果你做的所有事情都正确,它就会工作。
- 右键单击数据文件夹,然后转到属性->安全选项卡->高级按钮
- 勾选底部的复选框“替换所有子对象 perm[..]”
- 按“添加”,
select principal
然后在顶部的大框中输入内容。NETWORK SERVICE
为了确保它有效,请尝试按“检查名称”,它应该有下划线。然后按“确定”,为其设置所有权限。然后“确定”,“确定”,“确定”。您应该保留文件属性以批准所有内容。
如果步骤 4-6 抛出权限错误,请阅读步骤 7 /
- 尝试运行 postgres。如果出于某种原因您此时无法运行 postgres。然后以管理员身份运行命令行,并输入
icacls "{DATA_FOLDER}" /reset /T
此命令将清除所有权限,无论它们是什么。Postgres 安装应该会这样做,但它在某些版本中存在错误。就像我的一样。 - 现在您可以尝试运行 postgres 服务。
- 此时 PG Admin 无法正常工作,但我设法使用 psql.exe 登录,并转储了所有数据。
pg_dump -U {USERNAME} {DATABASE} > {FILENAME.EXT}
然后我卸载了 postgres,重新启动了 PC,然后安装了最新版本,并恢复了转储。