2010-08-12 70 views
53

我已經找遍了,發現沒有解決方案,對此的任何幫助將是偉大的。mysql加載數據infile無法獲得文件的統計信息Errcode:2

查詢:

LOAD DATA INFILE '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' 
INTO TABLE `tba`.`tbl_name` 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES 
(
field1, field2, field3 
) 

錯誤:

Can't get stat of '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' (Errcode:2) 

注:

我在OSX 10.6.4運行MySQL查詢瀏覽器連接到MySQL 5.x的

我試過的東西:

  • 拖放正下降
  • 搭配chmod 777
  • 放在一個文件夾中有777個權限 以及具有777個 權限
+0

線檢查MySQL的論壇。這裏只是其中的一個鏈接: http://forums.mysql.com/read.php?10,228976,228976#msg-228976 – spinon 2010-08-12 19:52:30

+0

@spinon試過這個,不起作用。它確實爲我提供了和我一樣的文件路徑。我刪除了我所擁有的東西,然後拖放文件。給我一樣的路徑。當執行給我同樣的錯誤 – 2010-08-12 19:54:50

+1

也聽起來像文件可能不存在: http://www.electrictoolbox.com/article/mysql/mysqlimport-errors/ 搜索errcode:2在頁面 – spinon 2010-08-12 19:56:27

回答

101

嘗試要使用的文件LOAD DATA LOCAL INFILE代替LOAD DATA INFILE

否則檢查apparmor是否對您的目錄有效

+0

試過這個,但現在我得到一個SQL錯誤:你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第一行使用'LOCAL DATA INFILE'/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' INT'使用正確的語法。 – 2010-08-12 20:29:42

+6

由於您是負責人,因此它是LOAD DATA LOCAL INFILE我走了正確的道路。回答接受 – 2010-08-12 20:36:07

+0

嗯,是的,對不起, – Pierre 2010-08-12 21:32:48

9

我有一個類似的問題。該決議是一個輕度醜陋的黑客,但更容易記住比apparmor解決方法,只要你可以'sudo'。首先,我不得不把輸入文件在mysql子目錄爲我所用的數據庫:

sudo cp myfile.txt /var/lib/mysql/mydatabasename 

這確實副本和葉「root」作爲文件所有者。進入mysql和做USE mydatabasename後,我就能夠使用

LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename; 
+1

誰可能會發現這個很有用,這是爲我工作的解決方案,而不是接受的答案。我在Ubuntu 12.04 LTS和MySQL 5.5.35-0ubuntu0.12.04.1。 – 2014-01-22 11:33:26

+1

同樣,我能夠解決這個在Ubuntu上12.04,mysql 5.5.31通過改變我的文件的用戶:group到mysql:mysql – user18477575 2014-03-03 08:44:39

1

對於我來說,複製到/ tmp的內容並將其作爲源文件夾使用。 我使用MariaDB,我的版本不允許使用「LOCAL」修飾符。 有趣的是,給CSV文件夾的讀寫權限也不起作用。

0

我在使用AWS實例在mysql中填充表時遇到同樣的問題。

在我的情況下,我有實例本身的csv文件。

把絕對路徑解決了我的問題。

下面是MySQL文檔

If LOCAL is specified, the file is read by the client program on the client host and sent to the server. The file can be given as a full path name to specify its exact location. If given as a relative path name, the name is interpreted relative to the directory in which the client program was started.

http://dev.mysql.com/doc/refman/5.7/en/load-data.html