IT/SQL

[Mysql Charset] utf8 에서 utf8mb4 로 변경시

월공 2021. 10. 1. 00:23
728x90
300x250

바로 전 포스팅에서 utf8 => utf8mb4 변환 방법을 소개했다.

 

https://bug41.tistory.com/141

 

[Mysql/MariaDB] Insert 에러 Incorrect string value: '\xF0\x9F\x91\xB7\xF0\x9F...' for column

\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\xA4 이게 뭔데 에러가 나는가 ? 흔히들 우리 휴대폰에서 자주 쓰는 "이모지 😁 😤" 가 유니코드화 된것. 4byte 로 구성되있음 UTF-8 문자 집합은 1~4 바이트까지..

bug41.tistory.com

근데 그건 일단 my.cnf 에서 설정을 한거고, 기존에 있는 DB 들 테이블들 charset 이 바뀐건 아니다.

 

암만 서버쪽 mysql charset 백날 바꿔준다해도 기존에 있는 DB 및 테이블들 charset이 바뀌는건 아니다.

 

mysql 접속 후 아래 명령어를 치면 현재 설정되있는 charset 을 확인가능하다.

 

status

 

 

아래 명령어는 현재 이 mysql 에 모든 DB 상세정보를 뿌려준다

SELECT schema_name, default_character_set_name, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA ;

 

해당 DB 의 default charset 을 변경해준다.

alter database [DB명] default character set = utf8mb4;

 

기존 Table 의 charset 을 변경해준다.

alter table [테이블명] convert to character set utf8mb4;

 

해당되는 테이블의 모든 컬럼들 charset , 데이터 형식 등을 볼수있다.

show full columns from [테이블명];
728x90
300x250