今天在Linux上面用mysql的LOAD DATA INFILE 命令匯入文本中的資料到資料庫,但是在執行的時候總是拋出下面的錯誤
ERROR 13 (HY000): Can't get stat of 'XXXX.xxx' (Errcode: 13)
但是將
LOAD DATA INFILE
換成
LOAD DATA LOCAL INFILE
便可以正確的執行,經過探索發現估計是檔案的許可權問題,但是具體原因還有待探索,下面是國外網站對該問題的一個解釋,供參考
This means the file doesn't exist. The trick is that MySQL looksfor files in its data directory. You need to specify the full pathto the file: LOAD DATA INFILE '/path/to/test.txt' ...Or, you could use the LOCAL specifier to tell MySQL to load the filethrough the client, instead of directly into the server: LOAD DATA LOCAL INFILE 'test.txt' ...This second option isn't quite as efficient, but it will work even ifyou are not on the same machine as the server, or if you don't haveFILE privileges.None of the above really worked for me.What did work was a combinationof the two.You could try LOAD DATA LOCAL INFILE '/path/to/test.txt'...this may work if the above two don't.