기본적으로 CSV 파일은 저장할 때 다른 이름으로 저장하기를 누른 뒤
이미지와 같이 CSV UTF-8(쉼표로 분리) 라는 항목으로 저장해야 추후에 기술할 에러가 발생하지 않는다.
workbench에서 접속할 connection의 edit connection에 들어간다.
Advanced탭의 Others에
OPT_LOCAL_INFILE=1
을 추가한다.
LOAD DATA LOCAL INFILE "절대경로\\data.csv"
INTO TABLE dbName.tableName
FIELDS TERMINATED BY "|" # csv 구분자 입력
LINES TERMINATED BY "\n"
IGNORE 1 ROWS; # 첫 행이 컬럼명인 경우, 해당 행 저장 X
IGNORE 1 ROWS = 최상단이 데이터 설명을 위한 컬럼명일 경우에 그 줄은 무시하고 데이터를 입력받는다.
을 실행한다.
csv가 utf-8이 아닐 때 발생하는 에러, csv 파일을 연 다음 위에서 설명한 방법대로 utf-8 형식으로 다시 저장해주면 된다.
만약 이미 다른 형식으로 변환을 했고 파일이 깨진 상태라면 깨지기 전의 원본 파일이 필요하다.
refference link : https://li-fo.tistory.com/210
workbench를 사용 중이라면 위에서 기술한 [OPT_LOCAL_INFILE=1] 옵션을 Advanced 탭에 추가하면 된다.
다만 이것 외에도 추가적인 옵션 설정이 필요할 수 있으나 구글링으로 충분히 해결할 수 있다.
refference link: https://stackoverflow.com/questions/63361962/error-2068-hy000-load-data-local-infile-file-request-rejected-due-to-restrict
TIP : 만약 첫번째 칼럼이 'no int not null Auto-increment' 일 경우 한 칸을 비워두고 import를 하면 자동으로 no가 채워지게 된다.
ex)
장점 : data import wizard로는 수십분 ~ 수시간이 걸리는 작업이라도 코드로 작업하게 되면 1분 내로 끝낼 수 있다.
단점 : 외부 파일을 불러올 수 있는 설정이나 csv 파일 형식의 제한, 각종 에러 해결을 위해 처음 세팅할 때 시간 소요가 있다.