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
설정파일을 나눠놔서 수정하기 번거로움이 있다. ㅠㅠ