Я запускаю 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\"
Как я могу это изменить?
Будет проще, если вы переустановите Postgres и выберете папку данных во время установки.
В противном случае вам нужно прочитать о pg_ctl: http://www.postgresql.org/docs/current/static/app-pg-ctl.html
Если вы не хотите переустанавливать, вы также можете изменить это через реестр с помощью следующих ключей:
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 \ postgres \ postgres
Измените номер версии для используемой версии.
Эти ключи фактически выполняемой команды. Перезагрузите систему после перемещения каталога данных, куда вы хотите, и установки разрешений, и все будет в порядке. Хотя я признаю, что изменение реестра - самый безопасный способ.
pg_ctl unregister -N YourServiceName
(текущее название службы отображается в приложении "службы" панели управления)pg_ctl register -N PostgreSQL -U windowsuser -P windowspassword -D c:\somedir\newdata
net start PostgreSQL
Все это описано в мануале (см. Ссылку, размещенную Джорани)