MySQL 캐릭터셋(CharacterSet) 변경
MySQL 기본 설치 시에 부분 캐릭터셋이 latin1로 되어있는데 방치해두게 되면 인코딩이 깨져서 한글 깨짐이 발생하게 된다. 그래서 초기에 MySQL 설치 후에 latin1으로 설정 되어있는 것을 utf8 혹은 euckr로 서버 환경에 따라 맞춰서 변경해주어야 한다.
MySQL 캐릭터셋 변경하는 방법
먼저 터미널 창에서 MySQL을 접속하고 다음과 같은 명령어를 입력합니다.
show variables like ‘c%’;
[[email protected] ~]# $ mysql -uroot -p [비밀번호]
Enter Password :
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 48526
Server version: 10.5.8-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> show variables like ‘c%’;
부분 부분 캐릭터셋이 latin1로 되어있다.
utf8로 변경하기 위해서 다음과 같은 파일을 vi 편집기로 들어가서 해당 내용을 추가해준다.
MariaDB [(none)]> show variables like ‘c%’;
+———————————-+—————————-+
| Variable_name | Value |
+———————————-+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| check_constraint_checks | ON |
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
| column_compression_threshold | 100 |
| column_compression_zlib_level | 6 |
| column_compression_zlib_strategy | DEFAULT_STRATEGY |
| column_compression_zlib_wrap | OFF |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
| core_file | OFF |
+———————————-+—————————-+
20 rows in set (0.001 sec)
다음과 같이 client.cnf 파일을 수정해준다.
[[email protected] ~]# $ vi /etc/my.cnf.d/client.cnf
[client]
default-character-set=utf8
:wq
그리고 clients.cnf을 수정해준다.
[[email protected] ~]# $ vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]default-character-set=utf8
[mysqldump]defalut-character-set=utf8
:wq
그리고 server.cnf을 수정해준다.
[[email protected] ~]# $ vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]default-character-set=utf8
[mysqldump]defalut-character-set=utf8
:wq
cnf 파일 변경을 다 했으면 MySQL 데몬을 재시작 해준다.
[[email protected] ~]# $ systemctl restart mariadb
MySQL를 재시작 후에 show variables like ‘c%’;로 확인 해보면
아래와 같이 utf8로 변경 되었으면 설정이 제대로 된 것이다
MariaDB [(none)]> 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/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
+————————–+—————————-+
14 rows in set (0.00 sec)