Windows下ToolShed安装PostgreSQL失败,data目录为空且启动报错
Windows下PostgreSQL安装及启动权限问题解决
问题概述
通过ToolShed安装PostgreSQL(v11、v13、v15)时,管理员身份运行安装程序仍失败,报错:
Failed to load SQL modules into the database cluster. Problem running post-install step. Installation may not complete correctly Error reading file C:/Program Files/PostgreSQL/11/data/postgresql.conf
发现C:/Program Files/PostgreSQL/11/data目录为空,手动执行initdb填充后,执行启动命令:
pg_ctl -D C:/Program Files/PostgreSQL/11/data -l logfile start
出现权限拒绝报错:
waiting for server to start....Access is denied. stopped waiting pg_ctl: could not start server
解决方案
1. 彻底清理残留安装文件
完全卸载现有PostgreSQL版本,删除所有相关文件和注册表项:
- 删除
C:\Program Files\PostgreSQL\目录 - 删除隐藏目录
C:\ProgramData\PostgreSQL\(需开启显示隐藏文件) - 打开注册表编辑器,删除
HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL和HKEY_CURRENT_USER\SOFTWARE\PostgreSQL项(操作前备份注册表)
2. 更换安装目录并配置权限
C:\Program Files\受UAC严格权限控制,换用非系统保护目录(如D:\PostgreSQL\15):
- 提前右键目标目录 → 属性 → 安全 → 编辑,添加当前用户并赋予完全控制权限,应用保存
3. 手动初始化并注册服务启动
以管理员身份打开CMD,按以下步骤操作:
- 切换到PostgreSQL的bin目录:
cd D:\PostgreSQL\15\bin - 初始化数据库集群(路径用引号包裹避免空格):
(initdb -D "D:\PostgreSQL\15\data" -U postgres -W-U指定超级用户,-W会提示设置密码) - 注册为Windows服务:
pg_ctl register -N postgresql-15 -D "D:\PostgreSQL\15\data" - 启动服务:
net start postgresql-15
4. 排查ToolShed安装失败根源
- 确保安装包为PostgreSQL官方原版,避免第三方修改包
- 临时关闭杀毒软件/防火墙后重试安装,部分安全软件会拦截文件写入和服务注册
- 安装对应版本的Visual C++ Redistributable运行库(如v15对应2019版)
内容的提问来源于stack exchange,提问作者major
相关产品推荐
相关产品推荐

