2013-01-23 30 views
11

有一段时间我有我的数据库在命令窗口运行,因为我不知道如何运行它作为一个Windows服务。注册并运行PostgreSQL 9.0作为Windows服务

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

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

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

在此先感谢。

回答

18

使用pg_ctl程序的register参数。

 
pg_ctl.exe register -N postgres -U some_windows_username -P windows_password -D "D:/Program Files/PostgreSQL/9.0.4/db_data" ... 

细节都在手册中:http://www.postgresql.org/docs/9.0/static/app-pg-ctl.html

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

btw:将程序数据存储在Program Files是一个坏主意。您应该将数据目录移动到Program Files之外的某个位置,因为Program Files通常对于普通用户而言受到高度限制 - 这是有很好理由的。

+0

这就是计划=) –

8

只要运行“命令提示符”作为Windows管理员,并运行以下命令:

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

你并不需要指定一个用户和密码,因为以前的答案建议。

+0

嗨,很好的第一个答案,也许你可以在'pg_ctl.exe注册-N postgres -D“D:/ Program Files/PostgreSQL/9.0.4/db_data之前添加一个额外的换行符” '因为我可以看到你试图通过在它之前增加4个空格来突出显示它。 – Troyseph

+0

我在Windows系统中的命令提示符下运行以上服务时出现错误。 –