• 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 서버관리
  • 1. MySQL Server
    2. MySQL Server 로그
    1. 일반 쿼리 로그와 슬로우 쿼리 로그 대상 선택
    2. 에러 로그
    3. 일반 쿼리 로그
    4. 바이너리 로그
    5. 슬로우 쿼리 로그
    6. DDL 로그
    7. 서버 로그의 유지 보수
    3. 하나의 시스템에서 여러 MySQL 인스턴스 실행
    4. DTrace를 사용하여 mysqld 추적
  • 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 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

5.2.3 일반 쿼리 로그

일반 쿼리 로그는 mysqld의 실행 내용의 일반적인 기록입니다. 서버는 클라이언트가 연결 또는 연결 해제 할 때 정보를 로그에 기록 클라이언트에서받은 각 SQL 문을 로그에 기록합니다. 일반 쿼리 로그는 클라이언트 측에서 오류가 의심 될 때, 클라이언트가 mysqld에 보낸 내용을 정확하게 알고 싶은 경우에 매우 유용 할 수 있습니다.

mysqld는 문을받은 순서대로 쿼리 로그에 기록하지만 문이 실행 된 순서와 다를 수 있습니다. 이 기록 순서는 바이너리 로그의 순서와는 대조적으로, 바이너리 로그의 경우 문은 그것이 실행 된 후 잠금이 출시되기 전에 기록됩니다. 또한, 쿼리 로그는 데이터를 선택하면 문을 저장할 수도 있고, 그런 문은 바이너리 로그에는 일절 쓰지 않습니다.

명령문 기반 로깅을 사용하는 경우 모든 문은 쿼리 로그에 기록되지만 행 기반 로깅을 사용할 경우 업데이트는 SQL 문이 아닌 행의 변경으로 전송되기 때문에 binlog_format 가 ROW 때 이러한 문은 쿼리 로그에 전혀 기록되지 않습니다. 사용되는 명령문에 따라이 변수가 MIXED 로 설정된 경우 소정의 업데이트가 쿼리 로그에 기록되지 않을 수도 있습니다. 자세한 내용은 섹션 17.1.2.1 "문 기반 및 열 기반 리플리케이션의 장점과 단점" 을 참조하십시오.

기본적으로는 일반 쿼리 로그는 비활성화되어 있습니다. 초기 일반 쿼리 로그 상태를 명시 적으로 지정하려면 --general_log[={0|1}] 를 사용합니다. 인수를 지정하지 않거나 인수가 1이면 --general_log 의해 로그가 활성화됩니다. 인수가 0 인 경우이 옵션은 로그를 비활성화합니다. 로그 파일 이름을 지정하려면 --general_log_file= file_name 을 사용합니다. 로그 대상을 지정하려면 ( 섹션 5.2.1 "일반 쿼리 로그와 슬로우 쿼리 로그 대상 선택" 에서 설명되는) --log-output 을 사용합니다.

일반 쿼리 로그 파일의 이름을 지정하지 않으면 기본 이름은 host_name .log 입니다. 서버는 다른 디렉토리를 지정하는 절대 경로 이름이 지정되지 않는 한 데이터 디렉토리에 파일을 만듭니다.

실행시에 일반 쿼리 로그를 비활성화 또는 활성화하거나 로그 파일 이름을 변경하거나하려면 글로벌 general_log 및 general_log_file 시스템 변수를 사용합니다. general_log 를 0 (또는 OFF )로 설정하면 로그가 비활성화되고, 1 (또는 ON )하면 활성화됩니다. 로그 파일의 이름을 지정하려면 general_log_file 을 지정합니다. 로그 파일이 이미 열려있는 경우 로그 파일을 닫고 새 파일을 엽니 다.

일반 쿼리 로그가 활성화되면 서버는 --log-output 옵션 또는 log_output 시스템 변수에 의해 지정된 모든 대상에 출력을 씁니다. 로깅을 사용하면 서버는 로그 파일을 열고 로그 파일에 부팅 메시지를 씁니다. 그러나 FILE 로그 대상이 선택되지 않는 한 파일에 대한 더 이상의 쿼리 로깅이 수행되지 않습니다. 대상이 NONE 의 경우 일반 로그가 유효한 경우에도 서버는 쿼리를 쓰지 않습니다. 로그 출력 값에 FILE 이 포함되어 있지 않은 경우, 로그 파일 이름을 설정해도 로깅에 미치는 영향은 없습니다.

서버 다시 시작 및 로그 플래시를하더라도 새로운 일반 쿼리 로그 파일은 생성되지 않습니다 (그러나 플래시에서 파일을 닫았다가 다시 엽니 다). 파일 이름을 변경하여 새 파일을 만들려면 다음 명령을 사용합니다.

 shell> mv host_name .log host_name -old.log
 shell> mysqladmin flush-logs
 shell> mv host_name -old.log backup-directory

Windows에서 mv 대신 rename을 사용하십시오.

또한 로그를 비활성화하여 실행시에 일반 쿼리 로그 파일의 이름을 변경 할 수 있습니다.

 SET GLOBAL general_log = 'OFF';

로그가 비활성화되어있는 경우, 명령 행 등 외부에서 로그 파일의 이름을 변경하십시오. 그 후, 로그를 다시 활성화합니다.

 SET GLOBAL general_log = 'ON';

이 방법은 모든 플랫폼에서 작동하는 서버 재부팅을 필요로하지 않습니다.

세션 변수 sql_log_off 를 ON 또는 OFF 로 설정하여 현재 연결에 대한 일반 쿼리 로깅을 비활성화하거나 활성화 할 수 있습니다.

MySQL 5.6.3 이후에서는 일반 쿼리 로그에 기록되는 문 암호는 서버에 의해 고쳐 쓸 수있어 문자 그대로 일반 텍스트로 표시되는 것은 아닙니다. 일반 쿼리 로그에 대한 암호 다시는 --log-raw 옵션으로 서버를 시작하여 억제 할 수 있습니다. 이 옵션은 서버에 의해 주어진 문장의 정확한 텍스트를 표시 할 때 진단 목적으로 유용 할 수 있지만 보안상의 이유로 프로덕션 용도로는 사용되지 않습니다.

MySQL 5.6.3 이전에서는 문에서 암호는 고쳐 쓸 수 없기 때문에 일반 쿼리 로그를 보호하도록하십시오. 섹션 6.1.2.3 "암호 및 로깅" 을 참조하십시오.

MySQL 5.6.3에서 암호 갱신의 도입에 의한 하나의 영향으로 (구문 오류 등의 이유로) 구문 분석 할 수없는 문이 암호없이임을 인식 할 수 없기 때문에 일반 쿼리 로그에 기록되지 않을 것입니다 . 오류를 가진 사람을 포함하는 모든 문 로깅을 필요로하는 사용 예는 --log-raw 옵션을 사용하지만이 옵션은 암호 기록을 우회 할 수 있음을 유념하십시오.

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