Loading...
MySQL 9.5 Reference Manual 9.5의 12.3.2 Server Character Set and Collation의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
MySQL Server는 서버 문자 집합(server character set)과 서버 정렬 규칙(server collation)을 가집니다.
기본값은 각각 utf8mb4와 utf8mb4_0900_ai_ci이지만, 서버 시작 시 커맨드 라인 또는 옵션 파일에서 명시적으로 설정할 수 있고 런타임 중에 변경할 수도 있습니다.
초기 서버 문자 집합과 정렬 규칙은
mysqld를 시작할 때 사용하는 옵션에 따라 달라집니다.
문자 집합을 위해
--character-set-server를 사용할 수 있습니다.
이와 함께, 정렬 규칙을 위해
--collation-server를 추가할 수 있습니다.
문자 집합을 지정하지 않으면,
--character-set-server=utf8mb4를 지정한 것과 같습니다.
문자 집합만(utf8mb4 같은) 지정하고 정렬 규칙은 지정하지 않으면,
--character-set-server=utf8mb4 --collation-server=utf8mb4_0900_ai_ci를 지정한 것과 같습니다.
그 이유는 utf8mb4_0900_ai_ci가 utf8mb4의 기본 정렬 규칙이기 때문입니다.
따라서 다음 세 가지 커맨드는 모두 동일한 효과를 가집니다:
1mysqld 2mysqld --character-set-server=utf8mb4 3mysqld --character-set-server=utf8mb4 \ 4 --collation-server=utf8mb4_0900_ai_ci
설정을 변경하는 한 가지 방법은 재컴파일입니다.
소스 코드로부터 빌드할 때 기본 서버 문자 집합과 정렬 규칙을 변경하려면,
CMake의 DEFAULT_CHARSET
및 DEFAULT_COLLATION 옵션을 사용합니다.
예를 들면 다음과 같습니다:
1cmake . -DDEFAULT_CHARSET=latin1
또는:
1cmake . -DDEFAULT_CHARSET=latin1 \ 2 -DDEFAULT_COLLATION=latin1_german1_ci
mysqld와 CMake는 모두
문자 집합/정렬 규칙 조합이 유효한지 검증합니다.
유효하지 않으면 각 프로그램은 오류 메시지를 출력하고 종료합니다.
서버 문자 집합과 정렬 규칙은
CREATE DATABASE
문에서 데이터베이스 문자 집합과 정렬 규칙이 명시되지 않았을 때 기본값으로 사용됩니다.
이 외의 다른 용도는 없습니다.
현재 서버 문자 집합과 정렬 규칙은
character_set_server 및
collation_server 시스템 변수 값으로부터 확인할 수 있습니다.
이 변수들은 런타임 중에 변경할 수 있습니다.
12.3.1 Collation Naming Conventions
12.3.3 Database Character Set and Collation