스노우보드 참 좋아하는데 맨날 키보드 앞에만 있네

Mac OS에서 인코딩 UTF-8 설정하기 (한글 깨질 때 해결방법) 본문

개발/Oracle SQL

Mac OS에서 인코딩 UTF-8 설정하기 (한글 깨질 때 해결방법)

워너-비 2017. 12. 4. 21:37

Mysql 인코딩 UTF-8로 설정하기




오늘 Mysql-스프링 웹프로젝트 진행 중에 한글이 깨졌다.

MySQLWorkbench 에서 데이터를 추가하면, 정상적으로 한글로 저장이 되는데, 연동한 웹에서 insert를 해주면 깨지는 현상이 발생하였다.

spring-mybatis에서의 UTF-8 설정이 문제 없으므로, MySQL SERVER characterset 을 확인해보자




1. 터미널로 Mysql 실행


$ cd /usr/local/mysql/bin
$ ./mysql -u root -p



비밀번호를 입력해주면 아래와 같은 메시지와 함께 서버에 접근할 수 있다.


1
2
3
4
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 238
Server version: 5.7.19 MySQL Community Server (GPL)




2. 현재 인코딩 방식을 확인한다


$ status



Server 와 Db의 characterset이 latin1 로 설정 되어져있는 것을 확인할 수 있다.

클라이언트 인코딩설정만 바꿔줬었나보다 ...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Connection id:        238
Current database:    
Current user:        root@localhost
SSL:            Not in use
Current pager:        stdout
Using outfile:        ''
Using delimiter:    ;
Server version:        5.7.19 MySQL Community Server (GPL)
Protocol version:    10
Connection:        Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /tmp/mysql.sock
Uptime:            8 hours 7 min 37 sec




3. my.cnf 파일에서 설정을 변경해보자


다음과 같이 입력한다.

1
su - root


이후 비밀번호를 입력하여 root 계정에 접속한다.

my.cnf 파일을 수정하기 위해 권한이 필요하기 때문이다.


my.cnf 파일을 연다.

1
vi /etc/my.cnf



아래와 같이 수정한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[mysql]
default-character-set=utf8
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
character-set-client-handshake=FALSE
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
old_passwords=1
 
[client]
default-character-set=utf8
 
[mysqldump]
default-character-set=utf8


수정이 끝나면 esc를 누르고 :wq 로 저장한 후 종료한다. (:q 는 종료만 한다.)



4. 변경결과 확인

mysql에서 status를 입력하여 결과를 확인한다.

mysql 서버를 끄고 다시 실행해야 적용된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Connection id:        7
Current database:    
Current user:        root@localhost
SSL:            Not in use
Current pager:        stdout
Using outfile:        ''
Using delimiter:    ;
Server version:        5.7.19 MySQL Community Server (GPL)
Protocol version:    10
Connection:        Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /tmp/mysql.sock
Uptime:            30 sec



Comments