在 Windows 上使用 PostgreSQL 时, 手动移动数据库文件夹后遇到文件夹权限问题导致服务无法启动 (错误码 1063) 时, 可以按照以下步骤检查和修复权限问题
pg_ctl: 无法启动服务 "postgresql-x64-10": 错误码 1063
pg_ctl: could not start service "postgresql-x64-10": error code 1063
-
检查旧 PG_DATA 目录的权限
使用
cacls
命令检查旧的数据目录权限cacls "c:\path\to\old\pgdata\dir"
-
检查新 PG_DATA 目录的权限
同样, 检查新的数据目录权限
cacls "d:\path\to\NEW\pgdata\dir"
-
比较权限差异
比较上述两条命令输出的权限, 找到用户和权限之间的差异
-
同步权限
根据差异, 设置新的权限, 确保 PostgreSQL 服务的用户有足够的权限来访问数据目录。使用
cacls
命令修改权限cacls "C:\Program Files\PostgreSQL\9.1\data" /E /T /C /G postgres:F
这样可以确保 PostgreSQL 服务有权限访问所需的文件夹
原文
Unable to run PostgreSQL as Windows service
Windows cacls 命令详解