2011-07-25 46 views
7

幾個月前,我已經安裝了kyngchaos安裝程序的postgres。我現在已更新到OSX Lion,但數據庫服務器無法啓動。獅子更新刪除了'postgres'用戶。如何恢復它?

對kyngchaos的博客(http://www.kyngchaos.com/blog/2011/20110723_lion)的評論讓我看看'postgres'用戶:它不再存在!至少,我不能「sudo su postgres」了。所以我認爲這是我的服務器不運行的原因。

我該如何最好地恢復該用戶?

+0

嘗試重新安裝? –

+0

沒有嘗試重新安裝,因爲kyngchaos在他的博客上說,由於缺少用戶,全新安裝也無法正常工作。 –

+0

嘗試添加用戶,在這種情況下。並可能chown -R相關的文件夾。 –

回答

3

(我回答)

最後,我需要做的唯一的事情就是重新打造的「Postgres的」用戶。之前,我列出了/usr/local/pgsql/的內容,並看到例如data/目錄歸用戶101所有,並且組postgres。所以我想,以配合該Postgres用戶到101用戶ID:

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

(事後我重新啓動我的MAC,因爲我不知道如何下手,通過手的Postgres服務器... ;-)

+1

'sudo -u postgres PGDATA =/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start'啓動postgresql而無需重新啓動。 –

0

我有一個類似的問題,並在控制檯中查看system.log,有關於postgresql數據目錄權限的各種消息。我玩弄chown和其他東西,但最終只是重新安裝 - 現在一切正常。

2

我認爲,在您的dscl命令中,而不是執行-create,您希望執行-append。 Apple傾向於將下劃線前綴作爲守護進程用戶名。因此,Apple可能爲用戶101創建了一個_postgres標籤。通過執行-create,您正在刪除默認的_postgres用戶,並將其替換爲postgres,這可能會導致其他問題。而如果你做一個-append,那麼你可以在用戶要麼_postgrespostgres引用用戶101在任何情況下,你應該這樣做無論是-create-append之前做了-list,只是讓你知道土地的外行。

注:我仍然在運行Snow Leopard的,所以無法驗證用戶101確實是_postgres,但我預計,蘋果依然採用相同的命名約定,如豹&雪豹,這就是它應該如何工作。做一個-list會告訴你你需要知道什麼來確認我的懷疑。

+0

感謝您的警告。幸運的是,我做到了「事先列出」。有*是一個_postgres用戶,但它有userid 216或其他東西,而我的postgres目錄中的userid是101.另外,我不能「sudo su postgres」了,所以postgres-without-underscore用戶真的不見了。我在某處讀到,osx現在包含了開箱即用的postgres,可能是內部的東西,所以這可能是_postgres用戶的根本原因。 –

0

我沒有得到一個正確的用戶跟隨@Reinout van Rees在山獅上的答案。 這些都是我的步驟來得到這個工作:

  • 下載並安裝Workgroup Manger
  • 登錄到本地LDAP:{服務器:127.0.01,UNAME:你UNAME],PW:你的密碼]}
  • 設置查看 - >顯示系統記錄以顯示所有帳戶
  • 檢查postgres不存在,並且沒有其他用戶的標識爲101。{名稱:Postgres的,用戶名:1​​01,PW:無,can_admin_server:假,access_account:假},先進:{login_shell:在/ usr/bin中/假
  • 用鎖圖標
  • 創建新用戶{基本解鎖經理}}
  • 這給了一些奇怪的錯誤,但最終創建了我的用戶
  • 測試的Postgres(sudo -u postgres PGDATA=/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start
  • >> Server started
相關問題