2011-06-01 80 views
0

我試圖用SQL從我的筆記本上傳一個csv文件到數據庫,但是我得到一個奇怪的錯誤。我打字到在phpMyAdmin SQL窗口中的代碼如下:爲什麼使用LOAD DATA INFILE時會出現錯誤?

LOAD DATA INFILE '/Users/myMac/testServerUpload.csv' 
INTO TABLE `testDatabase` 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 

,但我得到了以下錯誤:

Error 

SQL query: 

LOAD DATA INFILE '/Users/myMac/testServerUpload.csv' INTO TABLE `testDatabase` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 

MySQL said: Documentation 
#1045 - Access denied for user 'ukld'@'%' (using password: YES) 

我應該使用LOAD DATA LOCAL INFILE,而不是我目前的命令,該文件是在我的電腦上?兩者都給我一個錯誤,我認爲LOCAL可能意味着它在服務器上。我找不到有關此錯誤的建議。

回答

0

您需要登錄爲root用戶,運行:

SHOW GRANTS FOR 'ukld'@'%';

機會是你沒有,你認爲你做的權限......你需要對數據庫和表(S INSERT特權)您正在嘗試LOAD DATA


UPDATE:

要糾正GRANT問題,在你的MySQL運行這些語句爲根安裝:

REVOKE SELECT, INSERT, UPDATE, DELETE, CREATE, 
     DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, 
     LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, 
     CREATE ROUTINE, ALTER ROUTINE 
     ON ukld.* FROM 'ukld'@'%'; 

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, 
     DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, 
     LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, 
     CREATE ROUTINE, ALTER ROUTINE 
     ON ukld.* TO 'ukld'@'%' IDENTIFIED BY PASSWORD 'xxx'; 

FLUSH PRIVILEGES; 

確保在設置了正確的密碼第二個陳述。

+0

@AJ我想,結果如下:'GRANT USAGE ON *已確定BY PASSWORD 'ukld' @ '%' 'XXX'。GRANT選擇,插入,更新,刪除,創建,刪除,索引,ALTER,創建臨時表,鎖表,執行,創建視圖,顯示視圖,創建例程,改變常規'ukld'。* TO'ukld'@' %' ' – djq 2011-06-01 01:22:28

+0

看起來像第二個GRANT語句缺少'IDENTIFIED BY PASSWORD'xxx'部分... – 2011-06-01 01:24:08

+0

嗯。這是我的數據庫,我可以手動將csv文件導入到它。當我運行「SQL」這行時,有什麼方法可以輸入密碼? – djq 2011-06-01 01:26:02

2

我有同樣的問題,並通過使用本地,並給予完整的文件路徑固定它:

'C:/directory/file.csv' 

看來1045錯誤來自沒有訪問文件的服務器,這是在上如果未指定LOCAL,mySQL將查找該文件。

參見: