Mysql Character set = utf8 설정
한글 깨짐 문제로 인한 캐릭터 셋 확인 및 변경 작업이 많습니다.
DB에 저장된 한글이 클라이언트에서 안 보이는 경우는 클라이언트의 인코딩 값을 변경해서 조치를 할 수 있습니다.
그러나 저장 당시의 인코딩 값이 서로 다른 한글이 들어가 있을 경우는 어떤 한글은 정상적으로 보이지만, 어떤 한글은 깨져서 보이는 경우가 발생하게 됩니다..
이러한 경우는, MySQL은 기본으로 서버 캐릭터 셋이 latin1으로 설정 되어 있어서 DB 생성 시 캐릭터 셋 값을 지정해주지 않으면 latin1으로 생성이 됩니다..
또한, utf8로 설정을 하게 되더라도 아래 사진과 같이 전부가 아닌 client와 conn의 characterset이 euckr로 되어 있는 경우에도 한글이 깨지거나 혹은 나중에 프로그램에 문제를 일으킬 경우가 생기기 때문에
반드시 프로젝트에 들어가기 앞서, utf8로 설정을 하는 것이 일반적인 경우입니다.
Character set ?
사용하는 언어를 표현하기 위한 문자들의 집합을 의미. 한글을 표현하기 위하여 사용하는 캐릭터 셋에는 여러가지가 존재 합니다.
Encoding ?
Character Set을 컴퓨터가 이해할 수 있는 바이트와 매핑해 주는 것입니다.
저같은 경우에는 전부 utf8로 변경을 시키고 프로젝트를 시작해야하기 때문에 설정을 바꿔줘야 할 필요가 있습니다.
프로젝트 할때마다 설정을 변경해야하는 수고가 있어 정리해 보았습니다.
요약하자면 mysql 폴더의 my.ini 파일을 변경한 다음 서비스를 재 시작하면 끝입니다.
참 쉽죠? 한번 따라해보세요!
우선 mysql 폴더로 들어가서 my.ini 파일을 엽니다.
그리고 아래 글을 복사하여 my.ini에 붙여넣기를 합니다.
[client]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
skip-character-set-client-handshake
[mysql]
default-character-set=utf8
그리고 서비스에 들어가 mysql 를 재 시작하면 아래와 같이 설정이 완료된 것을 볼 수 있습니다.
참고 사항
MySQL 5.5 부터는 default-character-set 옵션이 제거되었고 character-set-server 만 설정해 주면 됩니다.
skip-character-set-client-handshake 가 빠지면 client 의 시스템 encoding 을 사용하는데 윈도의 경우 euckr 로 설정 될수 있으므로 확인이 필요합니다.
'Database' 카테고리의 다른 글
[SQL] 조건별 검색 쿼리 정리!! (0) | 2020.10.02 |
---|---|
Mysql 디비 백업 방법(전체함수까지 백업) (0) | 2020.10.02 |
Mysql 서브쿼리 별칭을 where에서 사용하는 방법 [Unknown column '별칭' in 'where clause'에러] (0) | 2020.09.23 |
Mysql 콘솔 접속 방법 및 명령어 (0) | 2020.09.22 |
Mysql Character set = utf8 설정 (0) | 2020.09.10 |
댓글