7

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

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

我怎样才能最好地恢复该用户?

4

4 回答 4

3

(回答自己)

最后,我唯一需要做的就是重新创建“postgres”用户。之前,我列出了 的内容/usr/local/pgsql/并看到例如该data/目录由 user101和 group拥有postgres。所以我想将该 postgres 用户绑定到 101 用户 ID:

sudo dscl . -create /Users/postgres
sudo dscl . -create /Users/postgres UniqueID 101

(然后我重新启动了我的mac,因为我不知道如何手动启动那个postgres服务器......;-)

于 2011-07-25T11:44:05.903 回答
3

我认为,在您的 dscl 命令中-create,您不想做 a ,而是想做一个-append. Apple 倾向于为守护进程用户名添加下划线前缀。因此,Apple 可能为用户 101 创建了一个 _postgres 标签。通过执行-create,您将删除默认的 _postgres 用户,并将其替换为 postgres,这可能会导致其他问题。而如果您执行 a -append,那么您可以使用或者 引用用户 101。无论如何,您应该在执行 a_postgres或an之前执行 a ,这样您才能了解情况。postgres-list-create-append

注意:我仍在运行 Snow Leopard,因此无法验证用户 101 确实是_postgres,但我希望 Apple 仍在使用与 Leopard 和 Snow Leopard 中相同的命名约定,这就是它应该如何工作的方式。做一个-list会告诉你你需要知道什么来证实我的怀疑。

于 2011-07-26T18:58:18.387 回答
0

我遇到了类似的问题,在控制台中查看 system.log 时,有各种关于 postgresql 数据目录权限的消息。我玩过 chown 和其他东西,但最终只是重新安装 - 现在一切正常。

于 2011-07-25T10:10:39.203 回答
0

在@Reinout van Rees 对山狮的回答之后,我没有找到合适的用户。这些是我让它工作的步骤:

  • 下载并安装Workgroup Manger
  • 登录到本地 ldap: {server: 127.0.01, uname:[your unname], pw: [your pw]}
  • 设置查看->显示系统记录显示所有账户
  • Checkpostgres不存在,并且没有其他具有 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
于 2013-04-25T10:30:03.077 回答