更改PostgreSQL的数据path

我运行PostgreSQL作为服务

在Administration – Services中,我可以看到以下path

"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\"用于数据path。

但是我怎么能改变这个? 我想以下面的方式启动这个服务

"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\"

我怎样才能改变它?

如果您在安装过程中重新安装Postgre并select数据文件夹,则更容易。

否则,你必须阅读关于pg_ctl: http : //www.postgresql.org/docs/current/static/app-pg-ctl.html

  • closures服务
  • 取消注册windows服务使用pg_ctl unregister -N YourServiceName (当前的服务名称显示在控制面板的“services”应用程序中)
  • 将数据目录移到新位置
  • 确保新目录的权限允许postgres用户访问这些文件
  • 再次validation新目录的权限是否正确
  • 注册Windows服务usingy
    pg_ctl register -N PostgreSQL -U windowsuser -P windowspassword -D c:\somedir\newdata
  • 使用net start PostgreSQL启动新的服务

所有这一切都在手册中介绍(请参阅链接jorani发布)

如果您不想重新安装,也可以通过以下registry通过registry进行更改:
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

更改您使用的版本的版本号。

这些实际执行的命令的键。 将数据目录移动到所需的位置并设置权限后,重新启动系统,您应该很好。 尽pipe我承认,修改registry是最安全的方法。