2015-07-01 80 views
0

我需要幫助將我的Postgres表格轉換爲CSV文件。首先,I型Postgres:複製到錯誤

sudo su postgres (then I enter my password) 
psql -d postgres -U postgres 

終端的樣子:

postgres=# 

我在鍵入COPY TO命令,試圖創建一個在我的表中的所有信息的.csv文件,但我得到的錯誤:

postgres=# COPY venues TO '/usr/file.csv'; 
ERROR: could not open file "/usr/file.csv" for writing: Permission denied 

我也嘗試使用\ copy命令,但我得到:

postgres=# \COPY venues TO '/usr/file.csv'; 
/usr/file.csv: Permission denied 

我讀了幾個答案,說我可能沒有權限寫在某個目錄中。這是真的?

另外,在postgres中,架構列出my_name作爲表的所有者,我試圖從(場館)導出信息。但是,這是我作爲postgres用戶登錄時,我只能在我登錄時作爲postgres用戶訪問表。

當我登錄到Postgres的,只需鍵入「PSQL,」我得到:

my_name=> 

,當我鍵入命令「\ d」可以看到該用戶下的表,我沒有看到場館表列出。 有人可以幫我解決這個問題嗎?先謝謝你。

+2

「我可能沒有權限在某個目錄來寫。這是真的嗎?」您的錯誤消息顯示「權限被拒絕」,您怎麼看? – Mat

+0

當輸入不帶參數的'psql'時,您將登錄到不同於'psql -d postgres -U postgres'的數據庫,這就是爲什麼它沒有相同的表。 –

+0

@Mat我不確定那個「權限被拒絕」是專門爲什麼的。這就是爲什麼我問 – hsivru

回答

0
postgres=# COPY venues TO '/tmp/file.csv'; 

應該工作ü

+0

謝謝!這工作。我怎麼能夠在tmp文件夾中傳輸和創建文件,而不是在usr文件夾中?我確實改變了usr文件夾中文件的權限,但是我得到了與上面寫的一樣的錯誤。 – hsivru

+0

cos/usr不可寫入任何用戶,/ tmp爲... –

+0

'/ usr'默認情況下不能由用戶寫入。它用於應用程序和系統文件。你爲什麼要嘗試寫入'/ usr'?當然你會使用'\ copy'和'/ home/myusername' ...?如果您未指定將會發生的絕對路徑,例如'\ copy venues TO'file.csv''會將'file.csv'存儲在'$ HOME/file.csv'中。 –