有一段时间我让我的数据库在命令窗口上运行,因为我不知道如何将它作为 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
提前致谢。
有一段时间我让我的数据库在命令窗口上运行,因为我不知道如何将它作为 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
提前致谢。
使用程序的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
对于普通用户来说通常受到高度限制——这是有充分理由的。
只需以 Windows 管理员身份运行“命令提示符”并运行以下命令:
pg_ctl.exe register -N PostgreSQL -D "D:/Program Files/PostgreSQL/9.0.4/db_data"
正如先前的答案所建议的,您不需要指定用户和密码。