我正在尝试将 PostgreSQL 9.5 数据库迁移到 Windows 2008 Server 上更大的磁盘 E。停止服务后,我最初尝试将文件夹复制data
到新磁盘,然后使用以下命令更改 PostgreSQL 服务的可执行路径
sc config postgresql-x64-9.5 binPath= "\"C:\Program Files\PostgreSQL\9.5\bin\pg_ctl.exe\" runservice -N \"postgresql-x64-9.5\" -D \"E:\pg_db\data\" -w"
data
我通过右键单击文件夹并转到 ,将文件夹的权限更改为包含“网络服务” Properties
。在选项卡下,Security
单击“ Edit...
”,然后单击“ Add...
”。键入“ Network Service
”,然后单击“ Check Names
”,然后OK
。
但是,当我点击“服务”中的“启动”时,Windows 事件查看器下出现以下错误消息:
FATAL: data directory "E:/pg_db/data" does not exist.
cmd
我甚至尝试使用说明从管理员提示符创建一个新的数据目录这里但最终还是出现了同样的错误。
我懂了答案之一在我写这篇文章时,“类似问题”的答案是“如果重新安装 Postgre 并在安装过程中选择数据文件夹,会更容易。”这不是我们能做的最好的事情。
答案1
扫描时发现问题在本机 Windows Wiki 上运行和安装 PostgreSQL
PostgreSQL 服务账户需要对服务目录的所有目录具有读取权限。它只需要对数据目录具有写入权限。
我已经设定了写data
目录的权限Network Service
,但不是读其上层目录的权限。