한글입력시 ?? 형태로 입력되는 경우..
mysql에 접속후 character set 확인
> show variables like 'c%';
> show global variables like 'c%';
설정값 중 utf8이 아닌 값이 있는경우, 예를 들어 'Latin1' 으로 설정된 값이 있는경우 발생함.
이 경우 아래와 같이 변경 후 재기동
---------------------------------------------------------------
1. my.cnf 파일 내용을 아래와 같이 수정한다.(Mysql, MariaDB 설정 파일)
명령어 : vi /etc/my.cnf [엔터]
[client]
default-character-set = utf8 <-- 추가
[mysqld]
init_connect = SET collation_connection = utf8_general_ci <-- 추가
init_connect = SET NAMES utf8 <-- 추가
character-set-server = utf8 <-- 추가
collation-server = utf8_general_ci <-- 추가
[mysqldump]
default-character-set = utf8 <-- 추가
[mysql]
default-character-set = utf8 <-- 추가
2. 위 내용을 추가 한 후, my.cnf 파일을 저장 한다.
3. 내용을 추가 한 뒤, 설정한 내용을 적용 하기 위해 mysql을 재시작 한다.
- 명령어 : service mysqld restart 또는 /etc/init.d/mysql restart
(MariaDB도 Mysql 명령과 동일 함.)
4. DB에 접속 하여 정상적으로 적용 되었는지 확인 한다.
- 명령어 : mysql -u root -p [엔터]
> 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/local/server/mysql/share/charsets/ |
| 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 |
+--------------------------+-----------------------------------------
> show global variables like 'c%';