我几个月前用kyngchaos安装程序安装了postgres。我现在已更新到OSX Lion,但数据库服务器无法启动。
对kyngchaos博客(http://www.kyngchaos.com/blog/2011/20110723_lion)的评论让我看看'postgres'用户:它不再存在了!至少,我不能再“sudo su postgres”了。所以我认为这就是我的服务器无法运行的原因。
如何才能最好地恢复该用户?
答案 0 :(得分:3)
(回答自己)
最后,我唯一需要做的就是重新创建“postgres”用户。之前,我列出了/usr/local/pgsql/
的内容,并看到data/
目录由用户101
和组postgres
拥有。所以我想把postgres用户绑定到101 userid:
sudo dscl . -create /Users/postgres
sudo dscl . -create /Users/postgres UniqueID 101
(然后我重新启动了我的mac,因为我不知道如何手动启动postgres服务器...; - )
答案 1 :(得分:2)
我认为,在你的dscl命令中,你想做一个-create
,而不是-append
。 Apple倾向于将underbars作为守护进程用户名的前缀。因此Apple可能会为用户101创建一个_postgres标签。通过执行-create
,您将删除默认的_postgres用户,并将其替换为postgres,这可能会导致其他问题。如果您执行-append
,那么您可以 <{em> _postgres
或postgres
来引用用户101.无论如何,您应该{{1}在做-list
或-create
之前,只要你知道这片土地的位置。
注意:我仍在运行Snow Leopard,因此无法验证用户101是否确实-append
,但我预计Apple仍然使用与Leopard&amp;雪豹,它应该如何运作。执行_postgres
将向您显示您需要知道的以确认我的怀疑。
答案 2 :(得分:0)
我遇到了类似的问题,通过Console中的system.log查看,有关postgresql数据目录的权限的各种消息。我玩chown和其他东西,但最终只是重新安装 - 现在一切正常。
答案 3 :(得分:0)
我没有得到适当的用户关注@Reinout van Rees对Mountain Lion的回答。 这些是我开始工作的步骤:
postgres
不存在,且没有其他ID为101
的用户。sudo -u postgres PGDATA=/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start
)>> Server started