我将 PostgreSQL 作为服务运行。
在管理 - 服务中,我可以看到以下路径
"C:\Program Files\PostgreSQL\8.4.3-3.1C\bin\pg_ctl.exe" runservice -w -N "pgsql-8.4.3-3.1C" -D "C:\Program Files\PostgreSQL\8.4.3-3.1C\data\"
-D "C:\Program Files\PostgreSQL\8.4.3-3.1C\data\"
用于数据路径。
但是我该如何改变这种情况?我想通过以下方式启动此服务
"C:\Program Files\PostgreSQL\8.4.3-3.1C\bin\pg_ctl.exe" runservice -w -N "pgsql-8.4.3-3.1C" -D "C:\pgsql\data\"
我该如何改变它?
答案1
如果您重新安装 Postgre 并在安装过程中选择数据文件夹,则会更容易。
否则你必须阅读有关 pg_ctl 的内容: http://www.postgresql.org/docs/current/static/app-pg-ctl.html
答案2
- 关闭服务
- 使用以下方式取消注册 Windows 服务
pg_ctl unregister -N YourServiceName
(当前服务名称显示在控制面板的“服务”应用程序中) - 将数据目录移动到新位置
- 确保新目录的权限允许 postgres 用户访问文件
- 再次验证新目录的权限是否正确
- 使用注册windows服务
pg_ctl register -N PostgreSQL -U windowsuser -P windowspassword -D c:\somedir\newdata
- 使用启动新服务
net start PostgreSQL
所有这些都在手册中描述(请参阅 jorani 发布的链接)
答案3
如果您不想重新安装,您也可以通过注册表中的以下项进行更改:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\postgresql-9.0\ImagePath HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\postgresql-9.0\ImagePath HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\postgresql-9.0\ImagePath
将版本号更改为您正在使用的版本。
这些键是实际执行的命令。将数据目录移动到所需位置并设置权限后,重新启动系统,一切就绪。我承认,修改注册表是最安全的方法。