머리말
이 환경은 Centos 7.8 시스템을 기반으로
특정 구성 을 위해 MySQL-5.7.14를 빌드 합니다. MySQL-5.7.14 환경 구성을 참조하십시오.
MySQL 문자 집합에는 문자 집합 (CHARACTER)과 데이터 정렬 (COLLATION)의 두 가지 개념이 포함됩니다.
MySQL 문자 세트보기
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
MySQL 문자 조합 규칙보기
mysql> show collation;
+--------------------------+----------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+--------------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci | big5 | 1 | Yes | Yes | 1 |
| big5_bin | big5 | 84 | | Yes | 1 |
| dec8_swedish_ci | dec8 | 3 | Yes | Yes | 1 |
| dec8_bin | dec8 | 69 | | Yes | 1 |
| cp850_general_ci | cp850 | 4 | Yes | Yes | 1 |
| cp850_bin | cp850 | 80 | | Yes | 1 |
| hp8_english_ci | hp8 | 6 | Yes | Yes | 1 |
| hp8_bin | hp8 | 72 | | Yes | 1 |
| koi8r_general_ci | koi8r | 7 | Yes | Yes | 1 |
| koi8r_bin | koi8r | 74 | | Yes | 1 |
| latin1_german1_ci | latin1 | 5 | | Yes | 1 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
... ...
1. MySQL 문자 집합의 이름 지정 접미사는 무엇입니까? 무슨 뜻이에요?
MySQL 문자 시퀀스 명명 규칙은 다음과 같습니다. 문자 시퀀스에 해당하는 문자 집합의 이름으로 시작하고 국가 이름이있는 가운데 (또는 일반이있는 가운데), ci, cs 또는 bin으로 끝납니다.
- ci : 의미대소 문자 구분 안함
- cs : 의미대소 문자 구분
- bin은 이진 코드 값에 따라 비교하는 것을 의미합니다.
둘째, MySQL 문자 집합 수정
현재 데이터베이스의 문자 집합 을 보기 위해 전역 적으로 적용되는 MySQL 서비스의 구성 파일을 수정하여 데이터베이스의 문자 집합을 수정
합니다.
mysql> show variables like '%character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
데이터베이스 문자 집합 수정
#配置文件中添加设置内容
[root@mysql-server ~]# vim /etc/my.cnf
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
데이터베이스에서 로그 아웃하고 다시 로그인 한 다음 데이터베이스의 문자 집합을 다시 확인하십시오.
mysql> show variables like '%character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
참고 : character_set_filesystem 기본 문자 집합은 이진으로 고정 설정이며 수정할 수 없습니다.