개발/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 |