본문 바로가기
데이터베이스

MySQL 데이터 저장 시 한글 깨짐 현상

by 성건희 2019. 4. 8.
반응형

문제

Spring-boot 프로젝트에 MySQL을 연동해서 사용하는 과정에서

INSERT 문으로 한글 데이터를 DB에 삽입하면 '???'와 같이 한글이 깨지는 현상이 발생.

해결

MySQL 5.7 버전 기준으로 C:\ProgramData\MySQL\MySQL Server 5.7 경로의 my.ini 파일을 메모장으로 연다.

그 후 맨 밑에 다음의 내용을 복사해 추가해준다.

[client]

default-character-set=utf8

[mysqld]

collation-server=utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server=utf8

[mysql]

default-character-set=utf8

변경사항을 적용시키기 위해서는 MySQL을 재시작해주어야 한다.

작업 관리자(Ctrl + Shift + Esc) - 서비스에서 MySQL을 찾아 '오른쪽 마우스 - 다시 시작'으로 서버를 재시작해준다.

문제를 해결하니 또 다른 문제가..

이번에는 DB에 한글 데이터를 삽입하니 한글 깨짐 현상 대신에 500 에러가 발생한다.

org.hibernate.exception.GenericJDBCException

하...

열심히 삽질을 하고 나니 결국 방법을 찾았다. (의지의 한국인 ^^)

문제는 위 설정으로 MySQL 인코딩을 바꾸긴 했지만, 기존에 있었던 데이터베이스 자체의 인코딩은 그대로였던 것이다.

간단히 말하면 지금 사용하고 있는 DB가 인코딩 설정하기 이전에 만든 것이어서 설정을 적용해도 그대로였던 것

해결

MySQL Workbench로 접속해 DB 오른쪽 마우스 - Alter Schema 클릭

 

Charset을 utf-8 / utf-8_bin으로 변경하고 Apply 클릭.

 

적용하고 나서야 정상적으로 한글이 저장된다!

참고

https://lazymankook.tistory.com/70

반응형

'데이터베이스' 카테고리의 다른 글

Liquibase (리퀴베이스) 사용기  (0) 2022.07.08
대용량의 데이터로 MySQL 학습하기  (0) 2022.01.12
인덱스란?  (0) 2019.10.17
데이터베이스  (2) 2019.05.16

댓글