PostgreSQL 13: Запуск сервера баз данных в Windows 10

#postgresql #postgresql-13

Вопрос:

Документация https://www.postgresql.org/docs/13/server-start.html предлагает эту команду:

 $ postgres -D /usr/local/pgsql/data
 

Но с помощью этой команды я получаю следующую ошибку:

Запуск сервера PostgreSQL пользователем с правами администратора не допускается. Сервер должен быть запущен с непривилегированным пользователем, чтобы предотвратить какие-либо проблемы с безопасностью на сервере. Дополнительную информацию о чистоте сервера см. в документации.*

Ответ №1:

Вы должны использовать pg_ctl для запуска сервера — это гарантирует, что права администратора будут удалены во время запуска.

Что-то вроде:

 pg_ctl -D c:/Data/PostgresData start
 

Вы можете зарегистрировать Postgres в службе Windows с помощью pg_ctl

Параметры задокументированы в руководстве

 pg_ctl register -N postgresql-13 -D c:/Data/PostgresData
 

Это должно быть сделано с правами администратора.

По умолчанию служба настроена на автоматический запуск, вы можете отключить это, если хотите. Затем вы можете запустить его вручную с помощью:

 net start postgresql-13
 

(Опять же с привилегированной учетной записью администратора)

Комментарии:

1. Пожалуйста, не могли бы вы разместить ссылку, объясняющую, как установить postgres в качестве службы Windows ? В документации показано несколько способов его установки.

2. @DONGMOBERNARDGERAUD: pg_ctrl register ... как объяснено здесь

3. Спасибо вам за вашу помощь. Все команды $pg_ctl -D "C:Program FilesPostgreSQL13data" option теперь работают. После запуска команды $pg_ctl -D "C:Program FilesPostgreSQL13data" start файл services.msc показывает , что postgresql-x64-13 — сервер PostgreSQL 13 запущен.

4. Размещение каталога данных (или фактически любых данных приложения) ниже c:Program Files -действительно плохая идея.

5. Вы правы, у меня уже были некоторые проблемы с этим в Android sdk.