幾個月前,我已經安裝了kyngchaos安裝程序的postgres。我現在已更新到OSX Lion,但數據庫服務器無法啓動。獅子更新刪除了'postgres'用戶。如何恢復它?
對kyngchaos的博客(http://www.kyngchaos.com/blog/2011/20110723_lion)的評論讓我看看'postgres'用戶:它不再存在!至少,我不能「sudo su postgres」了。所以我認爲這是我的服務器不運行的原因。
我該如何最好地恢復該用戶?
幾個月前,我已經安裝了kyngchaos安裝程序的postgres。我現在已更新到OSX Lion,但數據庫服務器無法啓動。獅子更新刪除了'postgres'用戶。如何恢復它?
對kyngchaos的博客(http://www.kyngchaos.com/blog/2011/20110723_lion)的評論讓我看看'postgres'用戶:它不再存在!至少,我不能「sudo su postgres」了。所以我認爲這是我的服務器不運行的原因。
我該如何最好地恢復該用戶?
(我回答)
最後,我需要做的唯一的事情就是重新打造的「Postgres的」用戶。之前,我列出了/usr/local/pgsql/
的內容,並看到例如data/
目錄歸用戶101
所有,並且組postgres
。所以我想,以配合該Postgres用戶到101用戶ID:
sudo dscl . -create /Users/postgres
sudo dscl . -create /Users/postgres UniqueID 101
(事後我重新啓動我的MAC,因爲我不知道如何下手,通過手的Postgres服務器... ;-)
'sudo -u postgres PGDATA =/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start'啓動postgresql而無需重新啓動。 –
我有一個類似的問題,並在控制檯中查看system.log,有關於postgresql數據目錄權限的各種消息。我玩弄chown和其他東西,但最終只是重新安裝 - 現在一切正常。
我認爲,在您的dscl命令中,而不是執行-create
,您希望執行-append
。 Apple傾向於將下劃線前綴作爲守護進程用戶名。因此,Apple可能爲用戶101創建了一個_postgres標籤。通過執行-create
,您正在刪除默認的_postgres用戶,並將其替換爲postgres,這可能會導致其他問題。而如果你做一個-append
,那麼你可以在用戶要麼_postgres
或postgres
引用用戶101在任何情況下,你應該這樣做無論是-create
或-append
之前做了-list
,只是讓你知道土地的外行。
注:我仍然在運行Snow Leopard的,所以無法驗證用戶101確實是_postgres
,但我預計,蘋果依然採用相同的命名約定,如豹&雪豹,這就是它應該如何工作。做一個-list
會告訴你你需要知道什麼來確認我的懷疑。
感謝您的警告。幸運的是,我做到了「事先列出」。有*是一個_postgres用戶,但它有userid 216或其他東西,而我的postgres目錄中的userid是101.另外,我不能「sudo su postgres」了,所以postgres-without-underscore用戶真的不見了。我在某處讀到,osx現在包含了開箱即用的postgres,可能是內部的東西,所以這可能是_postgres用戶的根本原因。 –
我沒有得到一個正確的用戶跟隨@Reinout van Rees在山獅上的答案。 這些都是我的步驟來得到這個工作:
postgres
不存在,並且沒有其他用戶的標識爲101
。{名稱:Postgres的,用戶名:101,PW:無,can_admin_server:假,access_account:假},先進:{login_shell:在/ usr/bin中/假sudo -u postgres PGDATA=/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start
)>> Server started
嘗試重新安裝? –
沒有嘗試重新安裝,因爲kyngchaos在他的博客上說,由於缺少用戶,全新安裝也無法正常工作。 –
嘗試添加用戶,在這種情況下。並可能chown -R相關的文件夾。 –