Назад | Перейти на главную страницу

Изменить путь к данным для PostgreSQL

Я запускаю 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

Измените номер версии для используемой версии.

Эти ключи фактически выполняемой команды. Перезагрузите систему после перемещения каталога данных, куда вы хотите, и установки разрешений, и все будет в порядке. Хотя я признаю, что изменение реестра - самый безопасный способ.

  • Завершить работу службы
  • Отмените регистрацию службы Windows, используя pg_ctl unregister -N YourServiceName (текущее название службы отображается в приложении "службы" панели управления)
  • Переместите каталог данных в новое место
  • Убедитесь, что разрешения нового каталога разрешают пользователю postgres доступ к файлам.
  • Еще раз проверьте правильность разрешений нового каталога
  • Зарегистрируйте службу Windows с помощью y
    pg_ctl register -N PostgreSQL -U windowsuser -P windowspassword -D c:\somedir\newdata
  • Запустите новую службу, используя net start PostgreSQL

Все это описано в мануале (см. Ссылку, размещенную Джорани)