Use o
register
parâmetro para o pg_ctl
programa. O diretório de dados não deve ser armazenado em
Program Files
, a localização de %ProgramData%
é, por exemplo uma boa escolha. pg_ctl.exe register -N PostgreSQL -U some_windows_username -P windows_password -D "%ProgramData%/db_data" ...
Nas versões mais recentes do Postgres, uma conta separada do Windows não é mais necessária, portanto, o seguinte também é suficiente
pg_ctl.exe register -N PostgreSQL -D "%ProgramData%/db_data" ...
Os detalhes estão no manual:http://www.postgresql.org/docs/current/static/app-pg-ctl.html
Você precisa ter certeza de que o diretório
D:/Program Files/PostgreSQL/9.0.4/db_data
tem os privilégios corretos para o usuário do Windows que você especifica com o -U
bandeira. Btw:é uma má ideia armazenar dados de programas em
Program Files
. Você deve mover o diretório de dados para algum lugar fora de Program Files
porque Program Files
geralmente é altamente restrito para usuários regulares - com uma boa razão.