2013-04-15 77 views
2

我有在Ubuntu 13.04改變上的PostgreSQL 9.1數據目錄的一個問題:如何更改數據目錄在PostgreSQL在Ubuntu 13.04

我第一次做了一次:試圖

sudo pg_dropcluster --stop 9.1 main 

,然後創建所需的路徑一個新問題:

sudo pg_createcluster -d /home/fccoelho/Documentos/databases/postgresqldata 9.1 main 

,但我失敗,拒絕權限:

Creating new cluster (configuration: /etc/postgresql/9.1/main, data: /home/fccoelho/Documentos/databases/postgresqldata/)... 
initdb: could not access directory "/home/fccoelho/Documentos/databases/postgresqldata": Permission denied 
Error: initdb failed 

我應該提到我檢查了權限,嘗試手動創建目錄,然後「向用戶postgres」chowning「等等。沒有任何更改權限被拒絕的消息。

我也試着使用PostgreSQL的分佈沒有成功initdb的二進制

如何使這項工作?

+1

這不僅僅是目標目錄。爲了遍歷路徑,路徑上的任何目錄都必須爲「其他」設置「x」位(除非它屬於postgres)。你檢查過了嗎? –

+0

謝謝,請參閱下面的解決方法。它可能與x位有關,但我沒有檢查。 – fccoelho

回答

1

我已經找到了workaraound,但沒有真正的解決方案:

我發現我不能保持我家的樹中的數據目錄,所以我創建了一個新的目錄/家庭/ postgresqldata/就跑:

sudo pg_createcluster -d /home/postgresqldata/ 9.1 main 

和一切按預期工作!

+0

反正把postgres數據保存在你的home文件夾中可能不是最好的方法......否則,如果你需要在你的home文件夾中創建數據文件夾,你必須檢查postgres用戶是否對你的用戶目錄有執行權限(由默認情況並非如此),所以當你用sudo執行腳本時,它可能會放棄權限並嘗試使用'postgres'用戶訪問目錄,因爲它是默認的owneruid和ownergid傳遞給pg_createcluster中的init_db子例程 - 請檢查來源於github – hovanessyan