사용자 도구

사이트 도구


wiki:mariadb:latin1에서_utf8mb4로_변환하기

문서의 이전 판입니다!


latin1에서_utf8mb4로_변환하기

  • description : Table Encoding 변환
  • author : 도봉산핵주먹
  • email : hylee@repia.com
  • lastupdate : 2020-04-22

변환한 이유

에러내용 (내부 프로젝트 코** 본문태그 전체를 수집해서 DB에 Insert 할떄 생김)
  • ERROR 1366 (HY000) : incorrect string value : ''\xED\x95\x9C\xEC\x9A\xB0…' for column 'ARTCL_HTML' at row 1
분석
  • 소스 중 이모티콘이 포함되어있어 생기는 에러
  • 이모티콘 4byte라 이보다 작은 CharacterSet 인 문자 집합으로 인코딩 되어있으면 꺠져서 에러가 난다.
참고

작업 순서

1. 현재 DB Character Set 을 확인한다. (utf8mb4인지 확인)
2. DB를 dump 한다.
3. mariaDB 설정파일에 인코딩 설정을 변경(, 추가) 한다.
4. dump 파일에 DDL 설정이 utf8mb4인지 확인하고 아니면 utf8mb4로 수정한다.
5. dump 파일을 밀어 넣는다.
6. mariaDB 재시작 후 DB 인코딩 확인한다.

1. Character Set 확인

Table Caracter Set 확인
    SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,
        information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
    WHERE
        CCSA.collation_name = T.table_collation
    AND
        T.table_schema = "${Database name}"
    AND
        T.table_name = "${Table name}";

Ref

/volume1/web/dokuwiki/data/attic/wiki/mariadb/latin1에서_utf8mb4로_변환하기.1587518751.txt.gz · 마지막으로 수정됨: 2022/03/10 19:52 (바깥 편집)