2010-08-12 26 views
53

Tôi đã xem xét tất cả và tìm thấy không có giải pháp, bất kỳ trợ giúp về điều này sẽ là tuyệt vời.mysql tải dữ liệu infile không thể nhận được stat của tập tin Errcode: 2

Query:

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 
) 

Lỗi:

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

LƯU Ý:

Tôi đang chạy trình duyệt MySQL Query trên OSX 10.6.4 kết nối với MySQL 5.x

Những điều tôi đã thử:

  • Kéo-n-thả
  • Chmod 777
  • Đặt trong một thư mục với 777 điều khoản cũng như các tập tin có 777 quyền
+0

Kiểm tra các diễn đàn mysql. Đây chỉ là một liên kết trên đó: http://forums.mysql.com/read.php?10,228976,228976#msg-228976 – spinon

+0

@spinon đã thử cách này, không hoạt động. Nó cung cấp cho tôi cùng một đường dẫn tập tin mà tôi có. Tôi đã loại bỏ những gì tôi đã có và thả-n-kéo tập tin trong. Mang lại cho tôi cùng một con đường. Khi thực hiện cung cấp cho tôi cùng một lỗi –

+1

Cũng có vẻ như tệp có thể không tồn tại: http://www.electrictoolbox.com/article/mysql/mysqlimport-errors/ Tìm kiếm errcode: 2 trên trang – spinon

Trả lời

101

cố gắng sử dụng LOAD DATA LOCAL INFILE thay vì LOAD DATA INFILE

nếu không, hãy kiểm tra xem apparmor có hoạt động cho thư mục của bạn không

+0

đã thử điều này nhưng bây giờ tôi nhận được một lỗi SQL: Bạn có một lỗi trong cú pháp SQL của bạn; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn để có cú pháp đúng để sử dụng gần 'LOCAL DATA INFILE' /Users/name/Desktop/loadIntoDb/loadIntoDB.csv ' INT' tại dòng 1 –

+6

đó là LOAD DATA LOCAL INFILE kể từ khi bạn dẫn đầu tôi xuống con đường bên phải. Trả lời Được chấp nhận –

+0

ah, vâng, xin lỗi vì lỗi chính tả – Pierre

9

Tôi đã có một vấn đề tương tự. Độ phân giải là một bản hack nhẹ nhàng, nhưng dễ nhớ hơn nhiều so với cách giải quyết khác với điều kiện bạn có thể 'sudo'. Trước tiên, tôi đã phải đặt các tập tin đầu vào trong mysql thư mục con cho cơ sở dữ liệu tôi đã sử dụng:

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

này thực hiện việc sao chép và lá 'root' là chủ sở hữu tập tin. Sau khi vào mysql và thực hiện một số USE mydatabasename, tôi có thể điền bảng thích hợp bằng cách sử dụng

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

Cho ai có thể tìm thấy điều này hữu ích, đây là giải pháp mà làm việc cho tôi thay vì câu trả lời được chấp nhận.Tôi đang ở trên Ubuntu 12.04 LTS và MySQL 5.5.35-0ubuntu0.12.04.1 –

+1

Tương tự như vậy, tôi đã có thể nhận được xung quanh này trên Ubuntu 12.04, mysql 5.5.31 bằng cách thay đổi người dùng tập tin của tôi: nhóm thành mysql: mysql – user18477575

1

Sử dụng tham số - địa phương sẽ trợ giúp việc này.

Ví dụ: mysqlimport --local databasename file.txt -p

nguồn: http://dev.mysql.com/doc/refman/5.1/en/load-data.html "Các tùy chọn --local gây mysqlimport để đọc tập tin dữ liệu từ máy chủ của khách hàng"

1

Đối với tôi, sao chép các nội dung vào/tmp và sử dụng nó như thư mục nguồn đã thực hiện thủ thuật. Tôi sử dụng MariaDB và phiên bản của tôi không cho phép sử dụng công cụ sửa đổi "LOCAL". Điều thú vị là việc cấp quyền truy cập đọc-ghi vào thư mục CSV cũng không hoạt động.

0

Tôi đã gặp vấn đề tương tự khi điền một bảng trong mysql vào một cá thể AWS.

Trong trường hợp của tôi, tôi đã có tệp csv trong chính cá thể đó.

Đặt đường dẫn tuyệt đối đã giải quyết được sự cố của tôi.

Đây là dòng từ MySQL tài liệu

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

Các vấn đề liên quan