본문 바로가기
DataBase/SQL

MySQL - Unhandled exception : 'ascii' codec can't decode byte 0xc3 in position 480: 해결방법

by skwkiix 2023. 10. 4.
728x90

 


Mac 에서 특정 csv 테이블을 불러오는 도중 다음과 같은 에러가 발생했다.

 

 

 

해결 방법


로컬에서 직접 데이터 파일을 읽어 MySQL 데이터베이스로 로드하는 방법으로 해결했다.

 

1. MySQL 설정에서 'OPT_LOCAL_INFILE'을 활성화한다

 

Mysql 에서 홈화면으로 이동하여 Edit Connection으로 들어간다.

 

Advanced 로 들어가서 Others에 OPT_LOCAL_INFILE =  1 을 추가해준다.

이제 , MySQL 서버가 로컬 파일을 사용하여 데이터를 로드할 수 있도록 허용했다.

 


 

2. 'LOAD DATA LOCAL INFILE' SQL 문을 사용

 

(로컬 파일에서 데이터를 읽고 MySQL 데이터베이스 테이블로 로드)

 

  • 터미널에서 mysql을 실행
  • show global variables like 'local_infile'; 명령어를 입력하여 local_infile 이 켜져 있는지 확인한다.
  • set global local_infile=true;  l 입력해서  local_infile 을 켜준다.

 

<Local_infile 설정 전/ 후 >

 

mysql> show global variables like 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile         | OFF   |
+---------------+-------+
1 row in set (0.01 sec)

mysql> show global variables like 'local_infile';

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile         | ON   |
+---------------+-------+
1 row in set (0.01 sec)

 

  • LOAD DATA LOCAL INFILE 입력

 

LOAD DATA LOCAL INFILE "파일절대경로" INTO TABLE 스키마.테이블이름 

FIELDS TERMINATED BY "," ENCLOSED BY '"' LINES TERMINATED BY "\n" IGNORE 1 ROWS;

LOAD DATA LOCAL INFILE "/Users/kimsinwoo/Desktop/datasets/full.csv" 
INTO TABLE mydata.dataset4 FIELDS TERMINATED BY "," ENCLOSED BY '"' LINES TERMINATED BY "\n" IGNORE 1 ROWS;

 

 

728x90