Mysql 한글깨짐

2018-10-05

Mysql 한글깨짐 처리해주기

HP나 JSP에서 한글이 ???(물음표)로 뜨거나 깨질 때 Mysql 설정을 바꿔보자.

Mysql 인코딩 확인

mysql에 로그인 해서

show variables like 'c%';
+--------------------------+------------------------------+
| Variable_name            | Value                        |
+--------------------------+------------------------------+
| character_set_client     | utf8                         |
| character_set_connection | utf8                         |
| character_set_database   | utf8                         |
| character_set_filesystem | binary                       |
| character_set_results    | utf8                         |
| character_set_server     | utf8                         |
| character_set_system     | utf8                         |
| character_sets_dir       | /usr/share/mariadb/charsets/ |
| check_constraint_checks  | ON                           |
| collation_connection     | utf8_general_ci              |
| collation_database       | utf8_general_ci              |
| collation_server         | utf8_general_ci              |
| completion_type          | NO_CHAIN                     |
| concurrent_insert        | AUTO                         |
| connect_timeout          | 10                           |
| core_file                | OFF                          |
+--------------------------+------------------------------+

보통 몇개 설정들이 latin으로 되어있는데 전부 utf8로 바꿔주면 된다.

Mysql 버전 확인하기

$ mysql --version

Mysql 5.7이상

mysql 버전 5.7 이상부터는 설정 파일이 나뉘어졌다.

[mysqld] 밑에 추가하기

mysqld는 /etc/mysql/mysql.conf.d/mysqld.cnf 에 적혀있음.

[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci

[client] 밑에 추가하기

client는 /etc/mysql/debian.cnf에 적혀있음.

[client]
default-character-set = utf8

[mysqldump] 밑에 추가하기

mysqldump는 /etc/mysql/conf.d/mysqldump.conf에 적혀있음.
[mysqldump]
default-character-set = utf8

[mysql] 밑에 추가하기

mysql은 /etc/mysql/conf.d/mysql.conf에 적혀있음

[mysql]
default-character-set = utf8

다 적고 mysql 재시작

$ sudo service mysql restart

설정파일을 나눠놔서 수정하기 번거로움이 있다. ㅠㅠ