2015-12-07 74 views
0

在MySQL中運行csv導出查詢時,出現訪問被拒絕錯誤。特定選擇查詢中的MySQL用戶權限錯誤

有問題的查詢:

SELECT id_no, name, address 
FROM master 
INTO OUTFILE '/Users/home/go_results.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

這導致:

Access denied for user 'user'@'%' (using password: YES) 

同一個用戶可以運行一系列其他選擇的,對查詢創建等。

我正在使用AWS RDS,所以我沒有root權限或者我會從那裏運行。

+3

將文件發送到服務器的本地文件系統,而不是客戶端。您無法訪問它,因爲它在RDS上。 –

回答

1

user不具備所需的權限。

從MySQL doc

在服務器主機上創建的文件,所以你必須擁有FILE 特權

執行以下語句:

GRANT FILE ON *.* TO 'user'@'%' 

還要注意正如@Anony Neace在他的評論中指出的那樣,並且正如文件中所述,SELECT INTO OUTFILE語法將在服務器上創建一個文件。儘管你的問題與此無關,所以答案就是這樣。

+1

與OP的問題恰恰相關,因爲他們指定他們在Amazon RDS環境中。事實上,這個答案對他們不起作用的全部原因。 Amazon RDS不支持'SELECT ... INTO OUTFILE'。更多細節:https://forums.aws.amazon.com/message.jspa?messageID=162499#162499 –

+0

謝謝,安東尼!雖然它在RDS上不起作用,但在此答案中,解決了OP指定的特定問題(爲什麼該語句存在MySQL權限錯誤)。這是一個很好的做法,讓OP知道他真的想要別的東西,但不要投票回答真正被問到的問題。 – marekful

+0

不,我不同意; OP包含了他們最初發布的詳細信息,這是問題的重要部分,因爲它使您的答案無效。這對OP來說是一種傷害,因爲他們提出了錯誤的問題,因爲你回答了錯誤的問題。如果他們事後編輯了這些細節,我會非常同意你的看法,因爲對答覆者來說,改變問題的性質是不公平的,但這不是發生在這裏的事情。 –