Win7的。 Postgres 9.3。
每次我在cmd中键入“postgres”,我得到这个错误。
创build一个没有任何pipe理权限的新帐户,以“login身份”权限和正确的目录访问权限Postgres /数据,然后我把这个帐户设置为服务菜单中的“login为”,但我仍然得到相同错误。
update2017:我从来没有find这个解决scheme。
对于窗户做到这一点:
net user postgres your_password /add
runas /user:postgres cmd.exe
whoami
”验证您是否正确登录 从你的问题来看,你是不是正在尝试启动Postgres 服务,或者是否没有注册Windows服务而“手动”启动Postgres。
由于9.x Postgres不需要它自己的Windows用户帐户来运行服务。 它默认使用内置的“网络”帐户。
要启动Postgres服务(如果它已被正确安装),只需使用use
net start postgresql-9.3
(实际名称可能不同)
如果您没有注册Windows服务,则应通过pg_ctl.exe
启动Postgres, pg_ctl.exe
不是通过postgres.exe
启动。 启动服务器时, pg_ctl.exe
将从进程中删除任何管理权限。
要从命令行手动启动Postgres,请使用:
pg_ctl -w -D c:\Path\To\The\DataDirectory
假定对数据目录的访问权限设置正确,以便当前用户可以完全访问该目录。
如果要手动安装/创建Windows服务,也可以通过pg_ctl
程序执行此操作:
pg_ctl register -N "postgresql-9.3" -D c:\Path\To\The\DataDirectory
再次,数据目录的访问权限必须正确设置。
这是因为Postgres不希望从超级用户帐户运行,以防止特权升级。 以postgres
系统用户启动服务器。 每个文档:
无论你做什么,服务器必须由PostgreSQL用户帐户运行,而不是由root用户或其他用户运行。 因此,你可能应该使用
su postgres -c '...'
来形成你的命令。