10.5 문자 세트 구성
기본 서버 문자 집합 및 데이터 정렬은 서버 시작시 --character-set-server
옵션과 --collation-server
옵션에서 변경할 수 있습니다. 데이터 정렬은 기본 문자 집합의 정당한 조합 순서 일 필요가 있습니다. (각 문자열 세트에 사용할 수있는 데이터 정렬을 특정하려면 SHOW COLLATION
명령문을 사용합니다.) 섹션 5.1.3 "서버 명령어 옵션" 을 참조하십시오.
바이너리로 컴파일되지 않는 문자 집합을 사용하려고하면 다음과 같은 문제가 발생할 수 있습니다.
문자 집합이 저장되는 위치 (일반적으로 MySQL 설치 디렉토리 아래의
share/mysql/charsets
또는share/charsets
디렉토리)를 판단 할 때 프로그램이 잘못된 경로를 사용합니다. 이는 해당 프로그램을 실행할 때--character-sets-dir
옵션을 사용하여 해결할 수 있습니다. 예를 들어, MySQL 클라이언트 프로그램에서 사용되는 디렉토리를 지정하려면 옵션 파일의[client]
그룹에 설명합니다. 여기에 드는 예는 각각 Unix 또는 Windows의 경우 설정이 어떻게되는지를 보여줍니다.[client] character-sets-dir=/usr/local/mysql/share/mysql/charsets [client] character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.6/share/charsets"
문자 세트는 동적으로로드 할 수없는 복잡한 문자 집합입니다. 이 경우 문자 세트 지원을 사용하여 프로그램을 다시 컴파일해야합니다.
Unicode 캐릭터 세트의 경우 LDML 표기법을 사용하여 다시 컴파일하지 않고 데이터 정렬을 정의 할 수 있습니다. 섹션 10.4.4 "Unicode 문자 세트에 UCA 데이터 정렬의 추가" 를 참조하십시오.
문자 세트는 동적 문자 세트이지만, 그 구성 파일이 없습니다. 이 경우 새로운 MySQL 배포판에서 문자 세트의 구성 파일을 설치해야합니다.
문자 세트 인덱스 파일에 문자 집합의 이름이 포함되지 않은 경우 프로그램은 오류 메시지를 표시합니다. 이 파일의 이름은
Index.xml
에서 메시지는 다음과 같습니다.Character set '
charset_name
' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file이 문제를 해결하려면 새로운 인덱스 파일을 검색하거나 누락 된 문자 세트의 이름을 수동으로 현재 파일에 추가해야합니다.
다음과 같이 클라이언트 프로그램에 강제로 특정 문자 집합을 사용 할 수 있습니다.
[client]
default-character-set = charset_name
이것은 일반적으로 필요하지 않습니다. 그러나 character_set_system
이 character_set_server
또는 character_set_client
와 달리 (데이터베이스 개체 식별자 또는 컬럼 값, 혹은 그 양쪽 모두로) 수동으로 문자를 입력하는 경우 이러한 문자는 클라이언트 또는 출력 자체가 잘못 형식화 될 수 있습니다. 이러한 경우 --default-character-set=
를 사용하여 MySQL 클라이언트를 시작하고 시스템 문자 집합에 일치하도록 클라이언트 문자 집합을 설정하면 문제가 해결됩니다. system_character_set
MyISAM
테이블에서는 myisamchk -dvv tbl_name
을 사용하면 테이블의 캐릭터 셋의 이름과 값을 확인할 수 있습니다.