Windows 10环境下PostgreSQL数据库迁移:修改数据目录路径方法
Windows 10下修改PostgreSQL服务数据目录的完整步骤
前置准备
- 停止PostgreSQL服务:按Win+R输入
services.msc,找到对应版本的PostgreSQL服务(如PostgreSQL 15 Server),右键选择「停止」。 - 完整复制原数据目录到新磁盘路径:比如从
C:\Program Files\PostgreSQL\15\data复制到D:\PostgreSQL\data,确保所有文件、子目录都复制到位,保留原权限。
修改服务启动参数(解决-D参数不可编辑问题)
服务属性里的启动参数无法直接编辑,可通过以下两种方式修改:
方法一:使用sc命令(推荐)
- 以管理员身份打开命令提示符(CMD)或PowerShell。
- 查看当前服务配置,确认原启动参数:
(将服务名称替换为你实际的PostgreSQL服务名,版本不同名称会有差异)sc qc "PostgreSQL 15 Server" - 执行修改命令,替换
binPath中的-D参数路径:
注意:sc config "PostgreSQL 15 Server" binPath= "\"C:\Program Files\PostgreSQL\15\bin\pg_ctl.exe\" runservice -N \"PostgreSQL 15 Server\" -D \"D:\PostgreSQL\data\" -w"binPath=后面必须跟一个空格- 路径中的引号需要用
\"转义 - 替换命令中的
pg_ctl.exe路径和新数据目录路径为你实际的路径
方法二:修改注册表
- 按Win+R输入
regedit打开注册表编辑器。 - 导航到注册表路径:
(替换服务名称为实际名称)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PostgreSQL 15 Server - 找到
ImagePath键值,双击编辑,将其中-D后的原数据目录路径替换为新路径,确保引号格式正确。
验证与收尾
- 再次执行
sc qc "PostgreSQL 15 Server",确认binPath中的-D参数已指向新路径。 - 回到服务管理器,启动PostgreSQL服务。
- 连接数据库,执行SQL命令验证:
输出应为新的数据目录路径。SHOW data_directory; - 确认服务正常运行、数据库可正常访问后,再删除原数据目录(可选)。
内容的提问来源于stack exchange,提问作者Bud
相关产品推荐
相关产品推荐

