2011-03-06 69 views
7

我想在postgres中創建一個表空間,但是我得到了所有權問題。我使用的命令是:在postgresql中創建一個表空間

CREATE TABLESPACE magdat OWNER maggie LOCATION '/home/john/BSTablespace' 

我得到的錯誤:

ERROR: could not set permissions on directory "/home/john/BSTablespace": Operation not permitted 

文件夾屬於Postgres的:Postgres的,我試圖將其更改爲邵美琪,但如果我去:

chown maggie:postgres /home/john/BSTablespace 

我得到:

chown: invalid user: `maggie:postgres' 

用戶如何不存在?如果我列出postgres中的用戶,它會出現。任何想法我可能做錯了什麼?

回答

16

我會冒險猜測問題在於父目錄「/ home/john」的權限。你的主目錄可能是安裝的,只有你的用戶可以訪問(即chmod 700)(你的主目錄是chmod 700,不要改變它)。

做這樣的事情:

 
mkdir /BSTablespace 
chown postgres:postgres /BSTablespace 

然後

 
CREATE TABLESPACE magdat OWNER maggie LOCATION '/BSTablespace'; 

應該正常工作。

關於用戶maggie:數據庫用戶與OS用戶不一樣。這並不是說你在兩個地方都沒有名爲maggie的用戶 - 但是你需要在數據庫和操作系統中爲用戶創建用戶。

+1

謝謝,這就是問題所在。把它放在根上並沒有問題。 – 2011-03-07 00:06:05

+0

@gsiems更新你的答案,chown postgres:postgres/Directory。 – Giri 2015-11-03 14:27:36

+0

你如何爲單獨的驅動器/分區上的文件執行此操作?我一直在試圖引用'/ media/username/drive_name/pg_data'目錄,該目錄的權限設置爲類似的'chown'命令和父目錄,其權限設置爲700(使用單獨的用戶)。不過,我收到了與原始帖子相同的權限錯誤。 – 2016-12-01 05:16:12

0

當你在Mac上安裝的Postgres,並試圖用PgAdmin來創建數據庫,表,等你需要知道的是,PgAdmin Utilitypostgres帳戶下運行它,當你安裝了Postgres數據庫創建公用事業。

postgres account_postgres基團的一部分

dscacheutil -q group|grep -i postgres命令將列出與postgres帳戶相關聯的基團)

最好的做法是創建下根用於容納一個新的目錄(/) (讓我們把它叫做/postgresdata然後用postgres:_postgres作爲該目錄的所有者,使用下面的命令)

sudo chown postgres:_postgres /postgresdata

這應該爲你做。 然後,你可以創建一個子目錄下/postgresdata每個獨特的表空間