• 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)
  • 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 확장
  • 1. MySQL 내부 사양
    2. MySQL 플러그인 API
    3. 플러그인을 위한 MySQL서비스
    4. MySQL에 새로운 함수 추가
    5. MySQL 디버그 및 이식
    1. MySQL 서버 디버깅
    2. MySQL 클라이언트 디버깅
    3. DBUG 패키지
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

24.5.3 DBUG 패키지

MySQL 서버 및 대부분의 MySQL 클라이언트는 원래 Fred Fish에 의해 작성된 DBUG 패키지와 함께 컴파일됩니다. MySQL을 디버그 용으로 구성한 경우이 패키지는 프로그램을 실행하는 내용의 추적 파일을 검색 할 수 있습니다. 섹션 24.4.1.2 "추적 파일 만들기" 를 참조하십시오.

이 섹션에서는 디버깅 지원하도록 구축 된 MySQL 프로그램의 명령 줄 디버깅 옵션으로 지정할 수있는 인수 값을 정리하고 있습니다. DBUG 패키지를 사용한 프로그래밍은 MySQL 소스 배포판의 dbug 디렉토리에있는 DBUG 설명서를 참조하십시오. 최신 DBUG 설명서를 얻으려면 최신 배포판을 사용하십시오.

DBUG 패키지는 --debug[= debug_options ] 또는 -# [ debug_options ] 옵션을 지정하여 프로그램을 시작하여 사용할 수 있습니다. --debug 또는 -# 옵션을 지정하여 debug_options 값을 지정하지 않으면 대부분의 MySQL 프로그램에서는 기본값이 사용됩니다. 서버의 기본은 Unix의 경우 d:t:i:o,/tmp/mysqld.trace , Windows의 경우 d:t:i:O,\mysqld.trace 입니다. 이 기본값은 다음과 같은 효과가 있습니다.

  • d : 모든 디버그 매크로 출력을 활성화합니다

  • t : 함수 호출 및 종료를 추적합니다

  • i : 출력 행에 PID를 추가합니다

  • o,/tmp/mysqld.trace , O O,\mysqld.trace : 디버그 출력 파일을 설정합니다

대부분의 클라이언트 프로그램은 플랫폼에 관계없이 기본 debug_options 값인 d:t:o,/tmp/ program_name .trace 가 사용됩니다.

쉘 명령 행에서 지정 될 수있는 디버그 제어 문자열의 몇 가지 예를 보여줍니다.

--debug=d:t
--debug=d:f,main,subr1:F:L:t,20
--debug=d,input,output,files:n
--debug=d:t:i:O,\\mysqld.trace

mysqld의 경우 debug 시스템 변수를 설정하여 DBUG 설정을 런타임에 변경할 수 있습니다. 이 변수는 글로벌 값과 세션 값이 있습니다.

mysql> SET GLOBAL debug = 'debug_options';
mysql> SET SESSION debug = 'debug_options';

런타임에 변경하려면 세션 값도 SUPER 권한이 필요합니다.

debug_options 값은 콜론으로 구분 된 일련의 필드입니다.

field_1:field_2:...:field_N

이 값의 각 필드는 필수 플래그 문자로 구성된 플래그 문자 앞에 + 문자 또는 - 문자 및 플래그 문자 뒤에 쉼표로 구분 한정자 목록이 옵션으로 추가 될 수 있습니다.

[+|-]flag[,modifier,modifier,...,modifier]

다음 표는 허용되는 플래그 문자를 보여줍니다. 인식되지 않는 플래그 문자는 암묵적으로 무시됩니다.

플래그

설명

d

DBUG_ XXX 매크로의 현재 상태에 대한 출력을 활성화합니다. 키워드 목록이 나중에 계속되는 일이있어, 그 키워드를 사용하는 DBUG 매크로의 출력 만 사용할 수 있습니다. 키워드 목록이 비어 있으면 모든 매크로의 출력이 활성화됩니다.

MySQL에서는 일반적으로 사용되는 디버깅 매크로의 키워드는 enter , exit , error , warning , info 및 loop 입니다.

D

각 디버거 출력 행의 뒤에 대기합니다. 인수는 0.1 초 단위의 대기 시간이며, 컴퓨터의 능력의 영향을받습니다. 예를 들어, D,20 은 2 초 대기를 지정합니다.

f

디버그 추적 및 프로필 대상을 지정된 함수 목록에 제한합니다. 빈 목록의 경우 모든 기능을 사용할 수 있습니다. 적절한 d 플래그 또는 t 플래그를 지정해야 그 플래그가 유효한 경우에만이 플래그는 그 플래그의 액션을 제한합니다.

F

디버그 출력 또는 추적 출력의 각 행에 소스 파일 이름을 나타냅니다.

i

디버그 출력 또는 추적 출력의 각 행에 PID 또는 스레드 ID로 프로세스를 나타냅니다.

L

디버그 출력 또는 추적 출력의 각 행에 소스 파일의 행 번호를 나타냅니다.

n

디버그 출력 또는 추적 출력의 각 행에 현재 함수의 중첩 깊이를 출력합니다.

N

디버그 출력의 각 줄에 번호를 지정합니다.

o

디버거의 출력 스트림을 지정된 파일로 리디렉션합니다. 기본 출력은 stderr 입니다.

O

o 와 비슷하지만 파일은 쓰기에 따라 실제로 플래시됩니다. 필요한 경우 파일이 쓰기에 대해 닫혀 다시 엽니 다.

p

디버거 작업을 지정된 프로세스에 한정합니다. 디버거 작업을 수행하기 위해서는 프로세스가 DBUG_PROCESS 매크로에서 식별 된 목록에서 프로세스와 일치해야합니다.

P

디버그 출력 또는 추적 출력의 각 행에 현재의 프로세스 이름을 출력합니다.

r

새로운 상태를 푸시 할 때 이전 상태 함수의 중첩 수준을 상속하지 않습니다. 출력을 왼쪽 여백에서 시작하는 경우에 유용합니다.

S

_sanity() 에서 0이 아닌이 반환 될 때까지 디버그되는 각 함수에서 함수 _sanity(_file_,_line_) 를 실행합니다.

t

함수 호출 / 종료 추적 행을 사용합니다. 최대 추적 수준을 나타내는 수치를 지정하는 목록 (수식이 하나 포함되어 있습니다) 그 뒤에 온다 계속되는 경우가 있고, 그것을 넘으면 디버깅 매크로 또는 추적 매크로 출력되지 않습니다. 기본값은 컴파일시 옵션입니다.

플래그의 앞에 + 문자 나 - 문자 및 플래그 문자 목록은 d , f 등의 플래그 문자에 사용하여 해당하는 모든 수정자 또는 그중 일부만 디버깅 작업을 수행 할 수 있습니다.

  • 플래그의 전에 + 또는 - 가 없으면 플래그 값은 지정된 수식 목록과 같이 설정됩니다.

  • 플래그의 전에 + 또는 - 이 경우에는 목록에서 수식자가 현재 한정자 목록에 추가 또는 삭제됩니다.

다음의 예는 d 플래그에서이 동작을 보여줍니다. d 목록이 비어 있으면 모든 디버그 매크로 출력이 활성화됩니다. 목록이 비어 있지 않은 경우 목록에서 매크로 키워드의 출력 만 사용할 수 있습니다.

다음 문은 지정된대로 d 값이 수식 목록으로 설정됩니다.

mysql> SET debug = 'd';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+
mysql> SET debug = 'd,error,warning';
mysql> SELECT @@debug;
+-----------------+
| @@debug         |
+-----------------+
| d,error,warning |
+-----------------+

플래그 이전 + 또는 - 현재 d 값에 추가 또는 삭제합니다.

mysql> SET debug = '+d,loop';
mysql> SELECT @@debug;
+----------------------+
| @@debug              |
+----------------------+
| d,error,warning,loop |
+----------------------+
mysql> SET debug = '-d,error,loop';
mysql> SELECT @@debug;
+-----------+
| @@debug   |
+-----------+
| d,warning |
+-----------+

"모든 매크로가 유효한 상태"에 추가 한 경우에는 아무것도 변경되지 않습니다.

mysql> SET debug = 'd';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+
mysql> SET debug = '+d,loop';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+

유효한 모든 매크로 제외하면 d 플래그는 완전히 비활성화됩니다.

mysql> SET debug = 'd,error,loop';
mysql> SELECT @@debug;
+--------------+
| @@debug      |
+--------------+
| d,error,loop |
+--------------+
mysql> SET debug = '-d,error,loop';
mysql> SELECT @@debug;
+---------+
| @@debug |
+---------+
|         |
+---------+
참고

MySQL 5.6.12 이전에는, + 및 - 한정자가 제대로 처리되지 않을 수 플래그 값이 잘못된 상태로 남아있을 수 있습니다. debug 설정 순서를 사전에 확인하거나 + 또는 - 를 사용하지 않고 설정하십시오.


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