16

有一段时间我让我的数据库在命令窗口上运行,因为我不知道如何将它作为 Windows 服务运行。

因为我下载了 zip 文件版本。如何将 pg_ctl 命令注册为 Windows 服务?

顺便说一句,我使用以下行来启动服务器:

"D:/Program Files/PostgreSQL/9.0.4/bin/pg_ctl.exe" -D "D:/Program Files/PostgreSQL/9.0.4/db_data" -l logfile start

提前致谢。

4

2 回答 2

30

使用程序的register参数pg_ctl

数据目录不应存储在 中Program Files,例如 的位置%ProgramData%是一个不错的选择。

pg_ctl.exe register -N PostgreSQL -U some_windows_username -P windows_password -D "%ProgramData%/db_data" ...

在较新版本的 Postgres 中,不再需要单独的 Windows 帐户,因此以下内容也足够了

pg_ctl.exe 注册 -N PostgreSQL -D "%ProgramData%/db_data" ...

详细信息在手册中:http ://www.postgresql.org/docs/current/static/app-pg-ctl.html

您需要确保该目录对您使用标志D:/Program Files/PostgreSQL/9.0.4/db_data指定的 Windows 用户具有正确的权限。-U

顺便说一句:将程序数据存储在Program Files. 您应该将数据目录移到其他地方,Program Files因为Program Files对于普通用户来说通常受到高度限制——这是有充分理由的。

于 2013-01-23T16:57:00.757 回答
18

只需以 Windows 管理员身份运行“命令提示符”并运行以下命令:

pg_ctl.exe register -N PostgreSQL -D "D:/Program Files/PostgreSQL/9.0.4/db_data"

正如先前的答案所建议的,您不需要指定用户和密码。

于 2015-07-02T15:23:35.103 回答