2012-09-07 89 views
0

我想打印查詢結果從MySQL(SELECT blah INTO OUTFILE 'filename')文件,但我發現了以下錯誤消息:MySQL的訪問被拒絕

ERROR 1045 (28000): Access denied for user 'mysql_username'@'localhost' (using password: YES)

它當我在屏幕上選擇信息時工作正常;它增加了INTO OUTFILE部分,使它給我錯誤。

起初,我想我只是沒有這個命令的權限(我已經完全在MySQL中創建/刪除權限這個特殊的數據庫,但不是root訪問服務器上),而是尋找到的錯誤,我發現跡象當用戶名&密碼未正確傳遞到服務器時發生此錯誤。我從服務器上的MySQL控制檯運行它,所以我不認爲這將是這種情況,但MySQL用戶名與服務器登錄不同,這可能是問題嗎?

這是我可以自己照顧的事情嗎?還是我需要將其鏈接給具有更多權限的人(在MySQL和/或服務器上)?

背景:我需要清除表中1000+條目的1/4以及與每個條目相關的文件。不幸的是,所有文件都在同一個文件夾中,並使用散列作爲文件名,所以雖然我可以使用範圍輕鬆地從表中獲取所需的行,但這對文件無效。我想在清除不需要的行之前從表中獲取文件名,以便我可以使用shell腳本刪除關聯的文件。

回答

1

按照manual,你必須有FILE權限和訪問服務器主機。

SELECTSELECT ... INTO OUTFILE'文件名'格式將所選行寫入文件。該文件在服務器主機上創建,因此您必須具有FILE特權才能使用此語法

1

您的用戶帳戶需要FILE特權。