• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 1. 문자 세트 지원
    1. 일반 문자 집합 및 데이터 정렬
    2. MySQL에서의 문자 셋과 콜레션
    3. 문자 셋과 콜레션 지정
    4. 연결 문자 집합 및 데이터 정렬
    5. 응용 프로그램의 문자 집합 및 정렬 순서 구성
    6. 오류 메시지의 문자 세트
    7. 데이터 정렬 문제
    8. 문자열의 레퍼토리
    9. 문자 세트 지원의 영향을받는 연산
    10. Unicode 지원
    11. 이전 Unicode 지원에서 현재 Unicode 지원으로 업그레이드
    12. 메타 데이터에 UTF-8
    13. 컬럼 문자 집합 변환
    14. MySQL에서 지원되는 문자셋과 콜레션
    2. 오류 메시지 언어 설정
    3. 문자 세트 추가
    4. 문자 세트에 데이터 정렬 추가
    5. 문자 세트 구성
    6. MySQL Server에서 시간대 지원
    7. MySQL Server의 로케일 지원
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

10.1.6 오류 메시지의 문자 세트

이 섹션에서는 서버가 오류 메시지를 구축해 클라이언트에 회신 할 경우 어떻게 문자 집합을 사용하는 방법에 대해 설명합니다. 오류 메시지 (문자 집합이 아닌) 언어의 자세한 내용은 섹션 10.2 "오류 메시지 언어 설정" 을 참조하십시오.

MySQL 5.6에서 서버는 UTF-8을 사용하여 오류 메시지를 구축하고 character_set_results 시스템 변수에서 지정된 문자 세트에서 클라이언트에 응답합니다.

서버는 다음과 같이 오류 메시지를 생성합니다.

  • 메시지 템플릿에서 UTF-8이 사용됩니다.

  • 메시지 템플릿 매개 변수가 특정 오류의 발생에 적용되는 값으로 대체됩니다.

    • 테이블 이름과 컬럼 이름과 같은 식별자는 UTF-8을 내부적으로 사용하기 때문에 그대로 복사됩니다.

    • 문자 (비 바이너리) 문자열 값은 해당 문자 세트에서 UTF-8로 변환됩니다.

    • 이진 문자열 값은 0x20 에서 0x7E 범위의 바이트에 대해서는 그대로 복사하고이 범위를 벗어나는 바이트 대해서는 \x 16 진수 인코딩을 사용하여 복사됩니다. 예를 들어, 0x41CF9F 을 VARBINARY 고유 컬럼에 삽입하려고 할 때 중복 키 에러가 발생했을 경우,이 결과 생성되는 오류 메시지가 UTF-8이 사용되며 일부 바이트는 16 진수로 인코딩됩니다.

       Duplicate entry 'A\xC3\x9F' for key 1
      

메시지 작성 후이를 클라이언트에 반환하기 위해 서버는이 메시지를 UTF-8에서 character_set_results 시스템 변수에 의해 지정된 문자 세트로 변환합니다. character_set_results 에 NULL 또는 binary 값이있는 경우 변환되지 않습니다. 변수 값이 utf8 인 경우에도 이것이 원래 오류 메시지의 문자 세트와 일치하기 때문에 변환이 수행되지 않습니다.

character_set_results 로 표현할 수없는 문자의 경우 변환하는 동안 일부 인코딩이 일어날 수 있습니다. 인코딩은 Unicode 코드 포인트 값을 사용합니다.

  • Basic Multilingual Plane (BMP) 범위 ( 0x0000 에서 0xFFFF )의 문자는 \ nnnn 표기를 사용하여 기록됩니다.

  • BMP 범위 외 ( 0x01000 에서 0x10FFFF )의 문자는 \+ nnnnnn 표기를 사용하여 기록됩니다.

클라이언트는 character_set_results 을 설정하여 오류 메시지를받을 때 문자 집합을 제어 할 수 있습니다. 이 변수는 직접 설정하거나 SET NAMES 등의 방법으로 간접적으로 설정할 수 있습니다. character_set_results 대한 자세한 내용은 섹션 10.1.4 "연결 문자 집합 및 정렬 순서" 를 참조하십시오.

클라이언트에 오류 메시지를 회신하기 전에 character_set_results 로 변환하는 사이에 행해지는 인코딩 결과 이전 버전 (MySQL 5.5 이전 버전)과는 다른 메시지 내용이 될 수 있습니다. 예를 들어, ペ (가타카나 배)라는 이름의 테이블을 삭제하려고 할 때 오류가 발생하고 character_set_results 가이 문자를 포함하지 않는 latin1 등의 문자 세트 인 경우 클라이언트로 전송되는 결과 메시지 다음과 같이 인코딩 된 테이블 이름이 표시됩니다.

 ERROR 1051 (42S02): Unknown table '\30DA'

MySQL 5.5 이전에는 다음과 같이 이름이 인코딩되지 않습니다.

 ERROR 1051 (42S02): Unknown table 'ペ


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved