문제
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 클릭.
적용하고 나서야 정상적으로 한글이 저장된다!
참고
'데이터베이스' 카테고리의 다른 글
Liquibase (리퀴베이스) 사용기 (0) | 2022.07.08 |
---|---|
대용량의 데이터로 MySQL 학습하기 (0) | 2022.01.12 |
인덱스란? (0) | 2019.10.17 |
데이터베이스 (2) | 2019.05.16 |
댓글