Usa el register
parámetro para el pg_ctl
programa.
El directorio de datos no debe almacenarse en Program Files
, la ubicación de %ProgramData%
es por ej. una buena elección.
pg_ctl.exe register -N PostgreSQL -U some_windows_username -P windows_password -D "%ProgramData%/db_data" ...
En las versiones más recientes de Postgres, ya no es necesaria una cuenta de Windows separada, por lo que lo siguiente también es suficiente
pg_ctl.exe register -N PostgreSQL -D "%ProgramData%/db_data" ...
Los detalles están en el manual:http://www.postgresql.org/docs/current/static/app-pg-ctl.html
Debe asegurarse de que el directorio D:/Program Files/PostgreSQL/9.0.4/db_data
tiene los privilegios correctos para el usuario de Windows que especifica con -U
bandera.
Por cierto:es una mala idea almacenar datos de programa en Program Files
. Debe mover el directorio de datos a algún lugar fuera de Program Files
porque Program Files
suele estar muy restringida para los usuarios habituales, por una muy buena razón.