Обновление Lion удалило пользователя 'postgres'. Как это восстановить? - PullRequest
7 голосов
/ 25 июля 2011

Я установил postgres с помощью установщика kyngchaos пару месяцев назад.Сейчас я обновился до OSX Lion, но сервер базы данных не запускается.

Комментарий к блогу kyngchaos (http://www.kyngchaos.com/blog/2011/20110723_lion) заставил меня взглянуть на пользователя 'postgres': он не существуетПо крайней мере, я больше не могу "sudo su postgres". Поэтому я понимаю, что именно поэтому мой сервер не работает.

Как мне лучше всего восстановить этого пользователя?

Ответы [ 4 ]

3 голосов
/ 25 июля 2011

(отвечая себе)

В конце концов, единственное, что мне нужно было сделать, это заново создать пользователя "postgres". Предварительно я перечислил содержимое /usr/local/pgsql/ и увидел, что, например, каталог data/ принадлежит пользователю 101 и группе postgres. Поэтому я хотел привязать этого пользователя postgres к 101 идентификатору пользователя:

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

(А потом я перезапустил свой Mac, так как не знал, как вручную запустить этот сервер postgres ...; -)

2 голосов
/ 26 июля 2011

Я думаю, что в вашей команде dscl вместо -create вы хотите сделать -append. Apple имеет тенденцию добавлять префиксы к именам пользователей демонов. Поэтому Apple, вероятно, создала метку _postgres для пользователя 101. Делая -create, вы удаляете пользователя _postgres по умолчанию и заменяете его postgres, что может вызвать другие проблемы в будущем. Принимая во внимание, что если вы делаете -append, то вы можете использовать либо _postgres или postgres для ссылки на пользователя 101. В любом случае вы должны сделать -list перед выполнением либо -create или -append, просто чтобы вы знали, как лежит земля.

Примечание. Я по-прежнему использую Snow Leopard, поэтому не могу убедиться, что пользователь 101 действительно _postgres, но я ожидаю, что Apple по-прежнему использует те же соглашения об именах, что и в Leopard & Snow Leopard, и так и должно быть. Работа. Выполнение -list покажет вам, что вам нужно знать, чтобы подтвердить мои подозрения.

0 голосов
/ 25 апреля 2013

Я не нашел подходящего пользователя после ответа @Reinout van Rees о Mountain Lion.Вот мои шаги, чтобы заставить это работать:

  • Загрузите и установите Диспетчер рабочей группы
  • Войдите в локальный ldap: {сервер: 127.0.01, uname:[your uname], pw: [your pw]}
  • Установить View-> Показать системные записи, чтобы показать все учетные записи
  • Проверьте, что postgres не существует, и нет другого пользователя с идентификатором101.
  • Диспетчер разблокировки со значком замка
  • Создание нового пользователя {basic: {name: postgres, userid: 101, pw: None, can_admin_server: False, access_account: False}, продвинутый: {login_shell: / usr / bin / false}}
  • Он выдал несколько странных ошибок, но в итоге создал моего пользователя
  • Test postgres (sudo -u postgres PGDATA=/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start)
  • >> Server started
0 голосов
/ 25 июля 2011

У меня была похожая проблема, и, просматривая system.log в консоли, на директории данных postgresql появлялись различные сообщения о разрешениях. Я играл с chown и другими вещами, но в итоге просто переустановил - теперь все работает нормально.

...