我在 Windows7 上安装了 postgres,并尝试通过控制面板启动该服务。它产生错误 1053。
当我尝试从命令行运行 postgres.exe 时,收到以下消息:
C:\Program Files (x86)\PostgreSQL\9.0\bin>postgres.exe
2011-07-24 14:02:29 IST LOG: could not create file "postmaster.opts": Permission denied
默认数据目录是
C:\Program Files (x86)\PostgreSQL\9.0\data
我已将 PGDATA 环境变量设置为上述目录。
另外,我还编辑了pg_hba.conf
该目录中的文件以添加如下新行:
local all postgres ident sameuser
我尝试在 Windows 防火墙中允许 postgresql 服务器(勾选私有网络和公共网络)启动该服务,当这不能解决问题时,我关闭了公共和私有网络的防火墙。
服务仍然无法启动。我尝试禁用 AVG 常驻防护。这些都不起作用。
知道该怎么办吗?
更新:
我尝试过这个:
C:\Program Files (x86)\PostgreSQL\9.0\bin>pg_ctl restart
pg_ctl: PID file "C:/Program Files (x86)/PostgreSQL/9.0/data/postmaster.pid" does not exist
Is server running?
starting server anyway
server starting
C:\Program Files (x86)\PostgreSQL\9.0\bin>2011-07-24 16:12:57 IST LOG: could not create file "postmaster.opts":
还是没有运气。
至于日志,我在文件夹中找到了 2 个 txt 文件data/pg_log
。它们包含安装后立即发生的事件日志,而不是我后来尝试启动 postgres 的日志。我已将其这里。
在 Windows 事件查看器中,我收到一系列错误事件条目,例如http://pastebin.com/K6jUPPAy。它们全都包含类似以下内容的消息:
2011-07-24 12:46:44 IST FATAL: could not access status of transaction
0 2011-07-24 12:46:44 IST DETAIL: Could not open file
"pg_notify/0000": Permission denied.
如果还有其他日志,请告诉我在哪里可以找到它们。
答案1
这只是猜测,但也许 PostgreSQL 目录设置为只读。读取这个帖子了解更多信息。
答案2
我刚刚遇到了同样的错误,在我的例子中,这是因为我为 posgresql 分配了太多内存(sort_mem 和 shared_buffers),不知何故导致无法启动。我只需要返回并用出厂默认文件替换 posgresql.conf。
祝你好运