Error note
[Linux] maria db, mysql에서 한글이 깨져서 나올 때 해결방법
chanzae
2022. 3. 15. 23:44
maria db, mysql 에서 한글이 있는 csv 파일을 import 할 때 한글 깨짐현상 해결하는 방법은 다음과 같다.
(한글로 구성된 테이블 생성 전 미리 데이터베이스의 설정을 변경해두면 좋을 것 같습니다.)
(우선 csv 파일이 utf8 형식으로 저장되어 있는지 확인한다. utf8로 저장되어 있지 않은 경우 utf8로 저장한다.)
#방법1. 테이블 구성하기 전 혹은 테이블을 drop한 상태라면...
1) db의 character set 값을 확인한다.
show create database orcl;
2) character set 을 변경한다.
alter database orcl default character set = utf8;
3) 테이블을 생성한다. 테이블 생성시 create 문 맨 마지막 줄에
ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 ;
이 코드를 넣어서 생성한다.
create table naver2
(cname varchar(10),
score int(2),
review varchar(4000) )
ENGINE = InnoDB DEFAULT CHARACTER SET = utf8;
4) db와 table의 character set 을 확인해보면 모두 utf8로 변경된 것을 확인할 수 있다.
show create database orcl;
show create table naver2;
5) 데이터를 로드한다.
#방법2. 테이블을 그대로 가지고 있다면....(데이터 로드했는데 한글깨지는 상태)
1) truncate해서 데이터를 지우세요.
truncate table naver2;
2) db의 character set 값을 확인한다.
show create database orcl;
3) db의 character set을 변경한다.
alter database orcl default character set = utf8;
4) 테이블의 character set 값을 확인한다.
show create table naver2;
5) 테이블의 character set을 변경한다.
alter table naver2 default character set = utf8;
6) 테이블의 한글이 포함된 컬럼별로 character set을 변경한다.
alter table naver2 modify review varchar(4000) character set utf8 collate utf8_general_ci;
alter table naver2 modify cname varchar(100) character set utf8 collate utf8_general_ci;
7) 다시 db와 테이블의 character set값을 확인하여 urf8로 변경된 것을 확인한다.
show create database orcl;
show create table naver2;
8) 데이터를 로드한다.
반응형