[스프링SPRING]MySQL DB 한글이 ?로 출력될때 워크벤치로 간단히 한글깨침 해결방법

사용중인 버전

내가 사용중인 버전은 아래와 같다. 기존에는 최신서버버전을 사용하고 있었으나 프로젝트때문에 다운그레이드했다.

  • MySQL Server v5.6.50
  • MySQL Workbench v8.0.22

스프링프로젝트를 하던 중 콘솔에는 한글이 깨짐없이 출력되나 DB에 ?로 한글데이터가 깨져서 입력되어있었다.
이를 해결하기 위해 구글링 엄청나게 많이 한 뒤에 해결할 수 있었다.
다른 사람은 시간을 아끼길 바라며 적어본다… 또르르..

일단 현재 mySQL상태를 알아보자. cmd를 열어 아이디와 비번으로 로그인을 한 뒤 status를 입력한다.

빨간 부분을 보면 UTF-8이 아니다. 이럴 경우 한글이 깨질수 있으니 utf-8로 설정해줘야한다.




첫번째 시도 : my.iti 변경하기

구글링하면 가장 많이 발견할 수 있는 방법이 my.ini 변경방법이다.
아쉽게도 나는 C:\Program Files\MySQL\MySQL Server 5.6경로에 my.ini파일이 없었다.




두번째 시도 : MySQL Workbench로 해결하기

아래 이미지처럼 workbench에 접속하여 administration 탭을 클릭한 뒤

  1. status and system variables 클릭
  2. system variables클릭
  3. cha검색
  4. character_set_client 부터 character_set_system까지 filesystem을 제외하고 다 utf8로 변경해준다.
  5. 따로 저장버튼은 없고 refesh 클릭

하지만 여전히 데이터입력시 ?가 발생했다.




마지막 시도 : MySQL Workbench + my.iti 변경

2번째시도를 완료한 상태에서 숨김폴더인 C:\ProgramData\MySQL\MySQL Server 5.6 경로로 이동하여 숨겨진 my.iti파일을 찾았다.
해당 파일에서 #SERVER SECTION전까지를 아래 처럼 추가해주었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[client]
default-character-set = utf8

[mysqld]
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

그 후 윈도우의 서비스 앱을 열어 (작업관리자 제일 마지막 탭 서비스) MySQL56서비스 다시시작을 클릭했다.
그랬더니 한글이 깨지지않고 DB에 들어와있다!
더이상의 물음표살인마는 없다!!!!




참고