2013-03-01 46 views
3

我在安裝postgresql-9.1的同時嘗試學習Rails。我沒有任何與它的麻煩的時候,但我只是打開了我的Console.app解決別的東西,我看到下面的錯誤每隔10秒重複:postgresql每10秒在控制檯中出現錯誤

3/1/13 10:28:15 AM com.edb.launchd.postgresql-9.1[89003] 2013-03-01 15:28:15 GMT FATAL: data directory "/Library/PostgreSQL/9.1/data" has wrong ownership 
3/1/13 10:28:15 AM com.edb.launchd.postgresql-9.1[89003] 2013-03-01 15:28:15 GMT HINT: The server must be started by the user that owns the data directory. 
3/1/13 10:28:15 AM com.apple.launchd[1] (com.edb.launchd.postgresql-9.1[89003]) Exited with exit code: 1 
3/1/13 10:28:15 AM com.apple.launchd[1] (com.edb.launchd.postgresql-9.1) Throttling respawn: Will start in 10 seconds 

我怎麼能阻止它?

+4

看起來很明顯:更改指定目錄的所有權,或更改服務器運行的ID。 – 2013-03-01 21:07:43

+0

我試過了:'sudo chown thingevery/Library/PostgreSQL/9.1/data'但是得到了:'不允許操作'我提到我對postgresql(以及一般的數據庫)真的很陌生嗎? – thingEvery 2013-03-01 21:35:27

回答

2

看起來你已經安裝了EnterpriseDB的PostgreSQL包,但是你不能使用它,因爲服務器無法啓動。我推測你正在使用Postgres.app或Homebrew Postgres等其他PostgreSQL服務器來開發你的工作?

如果是這樣,請考慮只卸載未使用的EnterpriseDB PostgreSQL包。或者,您可以刪除其啓動的配置文件,以便啓動時不嘗試啓動它,但這可能會在以後造成更多混淆。

如果你想使用它,你需要修復權限。 「啓動服務器的用戶」不會是您的用戶名,它將是名爲postgrespostgres_(在某些Mac系統上)的用戶。你可以通過閱讀EDB PostgreSQL的launchd文件來找出它。然後,你需要:

sudo chown -R postgres /Library/PostgreSQL/9.1/data 

(或postgres_取決於期望的內容的launchd)。

如果您正在運行另一個PostgreSQL服務器,這可能會允許EDB服務器嘗試啓動,但它會與其他PostgreSQL使用的端口號衝突,因此它仍然會失敗。或者它可能在您的計算機下次啓動時成功啓動,您將無法再訪問其他PostgreSQL實例。所以如果你已經使用了另一個版本的PostgreSQL,你應該只是卸載這個。

+0

非常感謝您的回答!除了通過Homebrew安裝的postgres之外,我還安裝了一個名爲pgAdmin3的應用程序。我懷疑這是問題,今天下午將它從我的系統中刪除。但是,直到我剛剛重新啓動之前,它並沒有阻止錯誤。 – thingEvery 2013-03-02 04:00:26

2

當我使用homebrew更新我的PostgreSQL到9.3版時,我遇到了同樣的問題。我開始搜索解決互聯網上的問題,但不幸的是,它沒有成功。所以我決定自己研究這個問題。我發現postgres試圖從2個地方開始:/System/Library/LaunchDaemons/~/Library/LaunchAgents。只要刪除舊的或禁用它(放置在/System/Library/LaunchDaemons/)就是這樣。

相關問題