csv 파일을 MySQL 워크 벤치로 가져 오는 방법은 무엇입니까?


88

CSV 파일이 있습니다. 여기에는 140 만 행의 데이터가 포함되어 있으므로 제한이 약 1 백만 행이므로 Excel에서 해당 CSV 파일을 열 수 없습니다.

따라서이 파일을 MySQL 워크 벤치로 가져오고 싶습니다. 이 csv 파일에는 다음과 같은 열이 포함되어 있습니다.

"Service Area Code","Phone Numbers","Preferences","Opstype","Phone Type"

다음과 같은 열을 포함하는 "더미"라는 이름의 MySQL 워크 벤치에서 테이블을 만들려고합니다.

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp. 

CSV 파일의 이름은 model.csv. 워크 벤치의 내 코드는 다음과 같습니다.

LOAD DATA LOCAL INFILE 'model.csv' INTO TABLE test.dummy FIELDS TERMINATED BY ',' lines terminated by '\n';

하지만 다음과 같은 오류가 발생합니다. model.CSV file not found


dbForge Studio for MySQL 가져 오기 마법사 에서도이를 수행 할 수 있습니다 . 그것은 자동으로 같은 방법으로 테이블을 생성 prnt.sc/e5iqy1
Devart

답변:


139

ENCLOSED BY 절이 누락 된 것 같습니다.

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
INTO TABLE test.dummy FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\n';

그리고 csv 파일 전체 경로를 지정하십시오.

데이터 Infile로드-MySQL 문서


1
감사합니다.이 명령에서 오류가 발생하지 않지만 model.csv 파일을 찾을 수없는 것과 같은 오류가 발생합니다. 파일이 저장 내 시스템의 바탕 화면에 있음
VPS

csv 파일이 내 시스템 바탕 화면에 저장 됨
vps

5
업데이트 : 비표준 문자가있는 문자열을 가져 오는 경우 "CHARACTER SET utf8"의 필요성을 다음 명령문에 지적하는 것이 유용합니다. LOAD DATA LOCAL INFILE '/path/to/file.csv'INTO TABLE db_name.table_name CHARACTER SET utf8 FIELDS TERMINATED BY ','ENCLOSED BY ' "'줄은 '\ n'으로 종료됩니다. 대상 테이블 / 열도 utf-8
ılǝ

1
또한 하나의 키워드 LOCAL을 잊지 말아야, 쿼리는 바로입니다
브리지 (Brij) 라지 싱 - MSFT

2
mysql workbench 6.2를 사용하여 Windows 7에서 "종류"로 작업했습니다. 이중 슬래시를 사용해야했고 '//path//to//your//csv//file//model.csv'단일 슬래시를 포함하는 모든 필드가 손상되었습니다.
576i 2014

69

더 작은 데이터 세트가있는 경우 GUI로이를 달성하는 방법은 다음과 같습니다.

  1. 쿼리 창 열기
  2. SELECT * FROM [테이블 _ 이름]
  3. 메뉴 모음에서 가져 오기를 선택합니다.
  4. 결과 그리드 아래 오른쪽 하단에있는 적용을 누릅니다.

여기에 이미지 설명 입력

참조 : http://www.youtube.com/watch?v=tnhJa_zYNVY


13
그냥 참고. 이 가져 오기 옵션은 Windows 시스템에만 있습니다. 플러그인은 여전히 ​​.Net 기반이므로 Linux 또는 Mac에서는 작동하지 않습니다.
BrianC 2014 년

8
가져온 후 적용을 누르는 것을 잊지 마십시오.
Steve Pitchers 2014 년

7
이것은 매우 느릴 수 있습니다. 그것은 25,000 행에 몇 시간 않는했다
롭 윅

2
시간은 하드웨어에 따라 크게 달라집니다. 내 가정용 컴퓨터는 10K 행에서 완전히 질식했습니다. 내 직장 컴퓨터는 85 초 동안 약 200 개의 열이있는 243K 행을 방금 가져 왔습니다.
KathyA.

2
@BrianC 이것은 더 이상 사실이 아닌 것처럼 보이며 Linux 버전에서 나에게 나타납니다.
Jammerx2 2015-06-23

21

SCHEMAS 아래의 네비게이터에서 스키마 / 데이터베이스를 마우스 오른쪽 단추로 클릭하고 "테이블 데이터 가져 오기 마법사"를 선택하십시오.

Mac에서도 작동합니다.


이것은 csv에서 새 테이블을 만들 때 Ubuntu 18.04에서 저에게 효과적이었습니다. 그러나이 방법을 사용하여 기존 테이블에 데이터를 추가 할 수 없습니다.
LP Whigley

2

MySQL 테이블 데이터 가져 오기 마법사를 사용할 수 있습니다.


감사합니다 :) 내 문제를 해결했습니다. 열 이름은 나중에 UI (전문가
용이 아님

작동하지 않는 많은 것을 시도했지만 마침내 성공했습니다. 로컬 데이터 파일 설정을 엉망으로 만들지 않고도 작동했습니다. MySQL이 대신 삽입을 실행하고 있다고 생각합니다.
Peppershaker

1

현재 모든 플랫폼에서 CSV (MySQL Workbench 사용)를 가져올 수 없으며 해당 파일이 MySQL 서버 호스트와 동일한 호스트에 있지 않은 경우에도 권장되지 않습니다.

그러나 mysqlimport 를 사용할 수 있습니다 .

예:

mysqlimport --local --compress --user=username --password --host=hostname \
--fields-terminated-by=',' Acme sales.part_*

이 예에서는 mysqlimport"part_"로 시작하는 확장자를 가진 "sales"라는 이름의 모든 파일을로드하도록 지시합니다. 이것은 "split"예제에서 생성 된 모든 파일을로드하는 편리한 방법입니다. --compress 옵션을 사용하여 네트워크 트래픽을 최소화합니다. --fields-terminated-by = ','옵션은 CSV 파일에 사용되며 --local 옵션은 수신 데이터가 클라이언트에 위치하도록 지정합니다. --local 옵션이 없으면 MySQL은 데이터베이스 호스트에서 데이터를 검색하므로 항상 --local 옵션을 지정하십시오.

AWS RDS 설명서에 주제에 대한 유용한 정보가 있습니다 .


0

서버가 원격 시스템에있는 경우 파일이 로컬 시스템이 아닌 원격 시스템에 있는지 확인하십시오.

파일이 mysql 서버가있는 동일한 시스템에있는 경우 mysql 사용자에게 파일 읽기 / 쓰기 권한이 있는지 확인하거나 파일을 mysql 스키마 디렉토리에 복사합니다.

우분투의 경우 : /var/lib/mysql/db_myschema/myfile.csv

또한이 문제와 관련이 없지만 새 줄에 문제가있는 경우 sublimeTEXT를 사용하여 줄 끝을 WINDOWS 형식으로 변경하고 파일을 저장 한 다음 다시 시도하십시오.


0

정말 오랫동안 나를 괴롭 혔기 때문에 조금 까다로운 것 같습니다.

테이블을 열면 ( "Select Rows- Limit 10000"을 마우스 오른쪽 버튼으로 클릭) 새 창이 열립니다. 이 새 창에서 "가져 오기 아이콘"을 찾을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.