Lion更新删除了'postgres'用户。如何恢复?

时间:2011-07-25 09:32:01

标签: macos postgresql osx-lion

我几个月前用kyngchaos安装程序安装了postgres。我现在已更新到OSX Lion,但数据库服务器无法启动。

对kyngchaos博客(http://www.kyngchaos.com/blog/2011/20110723_lion)的评论让我看看'postgres'用户:它不再存在了!至少,我不能再“sudo su postgres”了。所以我认为这就是我的服务器无法运行的原因。

如何才能最好地恢复该用户?

4 个答案:

答案 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> _postgrespostgres来引用用户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的回答。 这些是我开始工作的步骤:

  • 下载并安装Workgroup Manger
  • 登录本地ldap:{服务器:127.0.01,uname:[你的uname],pw:[你的pw]}
  • 设置视图 - &gt;显示系统记录以显示所有帐户
  • 检查postgres不存在,且没有其他ID为101的用户。
  • 使用锁定图标解锁经理
  • 创建新用户{basic:{name:postgres,userid:101,pw:None,can_admin_server:False,access_account:False},advanced:{login_shell:/ usr / bin / false}}
  • 它给出了一些奇怪的错误,但最终创建了我的用户
  • 测试postgres(sudo -u postgres PGDATA=/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start
  • >> Server started