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)
노트:
MySQL 5.x에 연결하는 OSX 10.6.4에서 MySQL Query 브라우저를 실행하고 있습니다.
내가 시도한 것 :
- 드래그 앤 드롭
- Chmod 777
- 777 권한이있는 폴더와 777 권한이있는 파일에 넣습니다.
LOAD DATA LOCAL INFILE
대신 사용하려고LOAD DATA INFILE
그렇지 않으면 의류 가 디렉토리에 대해 활성화되어 있는지 확인하십시오.
비슷한 문제가있었습니다. 해결 방법은 약간 못생긴 해킹 이었지만 '수도'가 가능하다면 의류 해결 방법보다 기억하기가 훨씬 쉽습니다. 먼저, 사용중인 데이터베이스의 mysql 하위 디렉토리에 입력 파일을 넣어야했습니다.
sudo cp myfile.txt /var/lib/mysql/mydatabasename
이렇게하면 복사가 수행되고 ' root
'는 파일 소유자로 남습니다 . mysql에 들어가서를 수행 한 후 다음을 USE mydatabasename
사용하여 적절한 테이블을 채울 수있었습니다.
LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename;
--local 매개 변수를 사용하면 도움이됩니다.
예 : mysqlimport --local databasename file.txt -p
출처 : http://dev.mysql.com/doc/refman/5.1/en/load-data.html "--local 옵션을 사용하면 mysqlimport가 클라이언트 호스트에서 데이터 파일을 읽습니다."
나를 위해 내용을 / tmp에 복사하고 소스 폴더로 사용하는 것이 트릭이었습니다. 저는 MariaDB를 사용하는데 제 버전에서는 "LOCAL"한정자를 사용할 수 없습니다. 흥미롭게도 CSV 폴더에 대한 읽기-쓰기 액세스 권한을 부여해도 작동하지 않았습니다.
AWS 인스턴스의 mysql에 테이블을 채우는 동안 동일한 문제가 발생했습니다.
제 경우에는 인스턴스 자체에 csv 파일이 있습니다.
절대 경로를 넣으면 내 문제가 해결되었습니다.
다음은 MySQL 문서의 라인입니다.
LOCAL이 지정되면 클라이언트 호스트의 클라이언트 프로그램이 파일을 읽고 서버로 보냅니다. 파일은 정확한 위치를 지정하기 위해 전체 경로 이름으로 제공 될 수 있습니다. 상대 경로 이름으로 제공되는 경우 이름은 클라이언트 프로그램이 시작된 디렉토리에 상대적으로 해석됩니다.
http://dev.mysql.com/doc/refman/5.7/en/load-data.html
참고 URL : https://stackoverflow.com/questions/3471474/mysql-load-data-infile-cant-get-stat-of-file-errcode-2
'programing tip' 카테고리의 다른 글
"For"루프 첫 번째 반복 (0) | 2020.11.27 |
---|---|
PHP에서 정수 (intcmp)에 해당하는 strcmp (0) | 2020.11.27 |
선호 속성 android : dependency의 반대를 수행하는 방법은 무엇입니까? (0) | 2020.11.27 |
자바 스크립트 변수 값을 입력 유형 숨겨진 값으로 전달 (0) | 2020.11.27 |
Swift에서 지연 초기화 된 변수를 다시 초기화합니다. (0) | 2020.11.27 |