수색…


목록

  • 일반 로그 - 모든 쿼리 - VARIABLE general_log 참조
  • 느린 로그 - long_query_time보다 느린 쿼리 - slow_query_log_file
  • Binlog - 복제 및 백업 용 - log_bin_basename
  • 복제 로그를위한 릴레이 로그
  • 일반적인 에러 - mysqld.err
  • 시작 / 중지 - mysql.log (별로 흥미롭지는 않음) - log_error
  • InnoDB 리두 로그 - iblog *

여러 로그의 기본 위치는 basedir 변수 및 datadir 변수를 참조하십시오.

일부 로그는 다른 변수에 의해 켜지거나 꺼집니다. 일부는 파일이나 테이블에 기록됩니다.

(검토 자에게주는 메모 : 자세한 내용과 자세한 설명이 필요합니다.)

문서 작성자 : Windows 및 * nix 모두에 대해 각 로그 유형의 기본 위치와 이름을 포함하십시오. (또는 적어도 가능한 한 많이).

느린 쿼리 로그

Slow Query Log는 long_query_time 초가 걸리는 쿼리의 로그 이벤트로 구성됩니다. 예를 들어, 완료까지 최대 10 초. 현재 설정된 시간 임계 값을 보려면 다음을 실행하십시오.

SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|         10.000000 |
+-------------------+

my.cnf 또는 my.ini 파일에서 GLOBAL 변수로 설정할 수 있습니다. 또는 연결에 의해 설정 될 수도 있지만 이는 드문 경우입니다. 값은 0에서 10 (초) 사이에서 설정할 수 있습니다. 어떤 가치를 사용합니까?

  • 10은 거의 쓸모가 없을 정도로 높습니다.
  • 2는 타협점입니다.
  • 0.5 및 기타 분수가 가능합니다.
  • 0은 모든 것을 포착합니다; 이것은 위험 할 정도로 빨리 디스크를 채울 수 있지만 매우 유용 할 수 있습니다.

느린 쿼리 캡처는 켜져 있거나 꺼져 있습니다. 그리고 기록 된 파일도 지정됩니다. 아래는 이러한 개념을 설명합니다.

SELECT @@slow_query_log; -- Is capture currently active? (1=On, 0=Off)
SELECT @@slow_query_log_file; -- filename for capture. Resides in datadir
SELECT @@datadir; -- to see current value of the location for capture file

SET GLOBAL slow_query_log=0; -- Turn Off
-- make a backup of the Slow Query Log capture file. Then delete it.
SET GLOBAL slow_query_log=1; -- Turn it back On (new empty file is created)

더 자세한 정보는 MySQL 매뉴얼 페이지를 참조하십시오 . Slow Query Log

참고 : slowlog 켜기 / 끄기에 대한 위의 정보는 5.6 (?)에서 변경되었습니다. 이전 버전에는 또 다른 메커니즘이 있습니다.

시스템 속도를 저하시키는 것을 보는 "가장 좋은"방법은 다음과 같습니다.

long_query_time=...
turn on the slowlog
run for a few hours
turn off the slowlog (or raise the cutoff)
run pt-query-digest to find the 'worst' couple of queries.  Or mysqldumpslow -s t

일반 검색어 로그

일반 쿼리 로그에는 클라이언트 연결, 연결 끊기 및 쿼리의 일반 정보 목록이 있습니다. 디버깅에는 매우 중요하지만 성능에 지장을줍니다 (인용문).

일반 쿼리 로그의 예제보기는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오.

일반 로그가 현재 캡처되고 있는지 확인하려면 :

SELECT @@general_log; -- 1 = Capture is active; 0 = It is not.

캡처 파일의 파일 이름을 확인하려면 다음과 같이하십시오.

SELECT @@general_log_file; -- Full path to capture file

파일에 대한 전체 경로가 표시되지 않으면 파일이 datadir 있습니다.

Windows 예제 :

+----------------------------------------------------------+
| @@general_log_file                                       |
+----------------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Data\GuySmiley.log |
+----------------------------------------------------------+

Linux :

+-----------------------------------+
| @@general_log_file                |
+-----------------------------------+
| /var/lib/mysql/ip-ww-xx-yy-zz.log |
+-----------------------------------+

general_log_file GLOBAL 변수가 변경되면 새 로그가 datadir 저장됩니다. 그러나 전체 경로는 변수를 검사하여 더 이상 반영되지 않을 수 있습니다.

구성 파일에 general_log_file 항목이없는 경우 datadir 기본값은 @@hostname .log입니다.

모범 사례는 캡처를 해제하는 것입니다. 로그 파일을 캡처의 시작 / 끝 날짜 시간을 반영하는 파일 이름으로 백업 디렉토리에 저장하십시오. 파일 시스템 이동 이 해당 파일에서 발생하지 않은 경우 이전 파일 삭제. 로그 파일의 새 파일 이름을 설정하고 캡처를 켜십시오 (아래 모두 표시). 모범 사례는 또한 순간에 캡처하려는 경우 신중한 결정을 포함합니다. 일반적으로 캡처는 디버깅 용도로만 사용됩니다.

백업 된 로그의 일반적인 파일 시스템 파일 이름은 다음과 같습니다.

/LogBackup/GeneralLog_20160802_1520_to_20160802_1815.log

여기서 날짜와 시간은 파일 이름의 일부입니다.

Windows의 경우 변경 사항을 적용하여 다음 순서를 기록하십시오.

SELECT @@general_log; -- 0. Not being captured
SELECT @@general_log_file; -- C:\ProgramData\MySQL\MySQL Server 5.6\Data\GuySmiley.log
SELECT @@datadir; -- C:\ProgramData\MySQL\MySQL Server 5.7\Data\
SET GLOBAL general_log_file='GeneralLogBegin_20160803_1420.log'; -- datetime clue
SET GLOBAL general_log=1; -- Turns on actual log capture. File is created under `datadir`
SET GLOBAL general_log=0; -- Turn logging off

Linux도 비슷합니다. 이것들은 동적 인 변화를 나타냅니다. 서버를 다시 시작하면 구성 파일 설정이 적용됩니다.

구성 파일과 관련하여 다음 관련 변수 설정을 고려하십시오.

[mysqld]
general_log_file = /path/to/currentquery.log
general_log      = 1

또한 log_output 변수는 FILE 아닌 TABLE 출력에 대해 구성 될 수 있습니다. 이를 위해서는 목적지 를 참조하십시오.

MySQL 매뉴얼 페이지 일반 쿼리 로그를 참조하십시오 .

오류 기록

오류 로그는 시작 및 중지 정보와 서버에서 발생한 중요한 이벤트로 채워집니다.

다음은 그 내용의 예입니다.

여기에 이미지 설명을 입력하십시오.

변수 log_error 는 오류 로깅을 위해 로그 파일 경로를 보유합니다.

log_error 에 대한 구성 파일 항목이 없으면 시스템은 datadir @@hostname .err 값을 기본값으로 사용합니다. log_error 는 동적 변수가 아닙니다. 따라서 변경 사항은 cnf 또는 ini 파일 변경 및 서버 재시작 (또는 아래의 매뉴얼 페이지 링크에서 "오류 로그 파일 플러시 및 이름 변경"참조)을 통해 수행됩니다.

로깅은 오류에 대해 비활성화 할 수 없습니다. 문제를 해결하는 동안 시스템 상태에 중요합니다. 또한 항목이 일반 쿼리 로그와 비교해 드문 경우입니다.

GLOBAL 변수 log_warnings 는 서버 버전에 따라 다양한 상세 수준을 설정합니다. 다음 스 니펫이 설명합니다.

SELECT @@log_warnings; -- make a note of your prior setting
SET GLOBAL log_warnings=2; -- setting above 1 increases output (see server version)

위에 보이는 log_warnings 은 동적 변수입니다.

cnfini 파일의 구성 파일 변경 사항은 다음과 같습니다.

[mysqld]
log_error        = /path/to/CurrentError.log
log_warnings     = 2

MySQL 5.7.2에서는 경고 수준을 3으로 확대하고 GLOBAL log_error_verbosity 추가했습니다. 다시, 그것은 5.7.2에서 소개 되었습니다. 동적으로 설정하고 cnf 또는 ini 구성 파일 설정을 통해 변수 또는 설정으로 검사 할 수 있습니다.

MySQL 5.7.2 현재 :

[mysqld]
log_error           = /path/to/CurrentError.log
log_warnings        = 2
log_error_verbosity = 3 

자격 부여 된 MySQL의 매뉴얼 페이지를 참조하십시오 오류 로그 특히 플러싱 및 오류 로그 파일의 이름을 변경하고, 관련 버전의 오류 로그 상세 섹션 log_warningserror_log_verbosity .



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow