在mysql中load data數據
mysql> load data infile '/home/a.txt' into table table_a;
ERROR 13 (HY000): Can't get stat of '/home/a.txt' (Errcode: 13)
我們用perror命令打印出具體錯誤信息
>perror 13
OS error code 13: Permission denied
看起來是權限的問題,
perror命令是MySQL數據庫系統中的一個工具程序,它用於打印C語言中errno錯誤代碼的含義、也可以打印MySQL中存儲引擎錯誤代碼的含義。(perror prints a description for a system error code or for a storage engine (table handler) error code.)
由於perror是MySQL中的一個工具程序,在沒有安裝MySQL的機器上就無法執行,本文的示例四將給出大致的源代碼供大家參考。
常用參數
格式:perror <errno>
打印系統錯誤代碼errno值的含義。
格式:perror <Errcode>
打印MySQL數據庫系統中定義的錯誤代碼的含義。
格式:perror <err1> <err2> ...
打印多個錯誤代碼的含義。
(參考:http://codingstandards.iteye.com/blog/1127327)
找到一篇文章:
MySQL: ERROR13(HY000):Can't get stat of的問題
但是將LOAD DATA INFILE
換成
LOAD DATA
LOCAL INFILE
OK!
原因分析:
源自Mysql中文手冊:
出於安全原因,當讀取位於服務器中的文本文件時,
文件必須位於數據庫目錄中,或者是全體可讀的。另外,要對服務器文件使用LOAD DATA INFILE,您必須擁有FILE權限。
如果指定了LOCAL,則文件會被客戶主機上的客戶端讀取,並被發送到服務器。文件會被給予一個完整的路徑名稱,以指定確切的位置。
權限問題啊!
參考:
http://blog.chinaunix.net/uid-23392298-id-62350.html