5.2.2 에러 로그
에러 로그에는 mysqld가 시작 및 정지 된 시간을 나타내는 정보와 서버가 실행 중에 발생한 모든 중요한 오류가 포함됩니다. 자동으로 체크하거나 복구 할 필요한 테이블을 mysqld에서 감지 된 경우 오류 로그에 경고 메시지가 기록됩니다.
운영 체제에 따라 mysqld가 비정상적으로 종료 된 경우 오류 로그에 스택 추적됩니다. 추적을 사용하여 mysqld가 비정상적으로 종료 여부를 판단 할 수 있습니다. 섹션 24.4 "MySQL의 디버그 및 이식" 을 참조하십시오.
mysqld_safe를 사용하여 mysqld가 시작되고 mysqld가 예기치 않게 비정상적으로 종료 된 경우, mysqld_safe는이를 감지하고 mysqld를 재시작하고 restarted mysqld
메시지를 오류 로그에 기록합니다.
다음의 설명에서 "콘솔"은 표준 에러 출력 stderr
을 의미하며, 표준 오류 출력을 리디렉션되지 않는 한, 이것은 사용자의 터미널 창 또는 콘솔 창입니다. (예를 들어, --syslog
옵션을 지정하여 시작하면 나중에 설명하도록 mysqld_safe는 서버의 stderr
가 syslog
에 보내도록 조정이 이루어집니다.)
Windows에서 --log-error
및 --console
옵션은 모두 오류 로깅에 영향을줍니다.
--log-error
를 지정하지 않는 경우, mysqld는 데이터 디렉토리에서
오류 메시지를 기록합니다.host_name
.err--log-error[=
을 지정한 경우, mysqld는 오류 로그 파일에 오류 메시지를 기록합니다. 지정된 파일이 존재하는 경우, 서버는 그 파일을 사용하여 다른 디렉토리를 지정하는 절대 경로가 지정되어있는 경우를 제외하고는 그 파일을 데이터 디렉토리에 만듭니다. 파일이 지정되지 않은 경우, 디폴트 이름은 데이터 디렉토리에서file_name
]
입니다.host_name
.err--console
를 지정한 경우, mysqld는--log-error
가 더 지정되는 경우를 제외하고 오류 메시지를 콘솔에 씁니다. 두 옵션이 존재하는 경우,--console
은 무시되고 효과가 없습니다. 그 순서는 관계없이--log-error
가 우선되고 오류 메시지가 로그 파일에 기록됩니다.
또한 Windows에서 서버 이벤트 및 오류 메시지를 응용 프로그램 로그에서 Windows 이벤트 로그에 기록합니다. Warning
및 Note
표시된 항목은 이벤트 로그에 기록되지만 개별 스토리지 엔진에서 정보 문 등의 정보 메시지는 기록되지 않습니다. 이러한 로그 항목의 소스는 MySQL
입니다. Windows 이벤트 로그에 정보 쓰기를 해제 할 수 없습니다.
Unix 및 Unix와 유사한 시스템에서는 mysqld는 오류 로그 메시지를 다음과 같이 씁니다.
--log-error
를 지정하지 않는 경우, mysqld는 오류 메시지를 콘솔에 씁니다.--log-error[=
을 지정한 경우, mysqld는 오류 로그 파일에 오류 메시지를 기록합니다. 지정된 파일이 존재하는 경우, 서버는 그 파일을 사용하여 다른 디렉토리를 지정하는 절대 경로가 지정되어있는 경우를 제외하고는 그 파일을 데이터 디렉토리에 만듭니다. 파일이 지정되지 않은 경우, 디폴트 이름은 데이터 디렉토리에서file_name
]
입니다.host_name
.err참고Yum 또는 APT 패키지 설치는 서버 구성 파일에
log-error=/var/log/mysqld.log
같은 항목은 오류 로그 위치를/var/log
아래에 구성하는 것이 일반적입니다. 항목에서 파일 이름을 삭제하면 오류 로그의 위치가 기본 설정 인 데이터 디렉토리에 반환됩니다.
오류 출력을 파일에 기록되는 경우 런타임에 log_error
시스템 변수가 오류 로그 파일 이름을 나타냅니다.
옵션 파일의 [mysqld]
[ [server]
또는 [mysqld_safe]
섹션에 --log-error
를 지정했을 경우, mysqld_safe는 옵션을 감지하고 사용합니다.
FLUSH LOGS
또는 mysqladmin flush-logs를 사용하여 로그를 플러시하고 mysqld가 오류 로그 파일에 기록 (예를 들어, --log-error
옵션을 사용하여 시작된 경우) 서버는 로그 파일을 닫고 밖으로 다시 오픈합니다. 파일 이름을 변경하려면 플래시하기 전에이를 수동으로 실행합니다. 그 후에 로그를 플러시하면 새 파일이 원본 파일 이름으로 다시 오픈합니다. 예를 들어, 다음 명령을 사용하여 파일을 이름 변경하고 새로운 파일을 만들 수 있습니다.
shell>mv host_name .err host_name .err-old
shell>mysqladmin flush-logs
shell>mv host_name .err-old backup-directory
Windows에서 mv 대신 rename을 사용하십시오.
서버가 지정된 파일에 기록하지 않으면 로그를 플러시 할 때 오류 로그의 이름 변경은 실행되지 않습니다.
mysqld_safe를 사용하여 mysqld를 시작하면 mysqld_safe는 mysqld가 오류 메시지를 로그 파일 또는 syslog
에 기록하도록 조정이 이루어집니다. mysqld_safe는 --syslog
, --skip-syslog
및 --log-error
세 가지 오류 로깅 옵션이 있습니다. 로깅 옵션을 지정하지 않거나 --skip-syslog
를 지정한 경우 기본값은 기본 로그 파일을 사용하는 것입니다. 오류 로그 파일의 사용을 명시 적으로 지정하는 경우, --log-error=
을 mysqld_safe에 지정하면 mysqld_safe는 mysqld이 메시지를 로그 파일에 쓰도록 조정이 이루어집니다. file_name
syslog
를 대신 사용하려면 --syslog
옵션을 지정합니다.
--log-warnings
옵션 또는 log_warnings
시스템 변수를 사용하면 오류 로그에 경고 로깅을 제어 할 수 있습니다. 기본값은 활성화 (1)입니다. 값 0을 사용하여 경고 로깅을 비활성화 할 수 있습니다. 값이 1보다 큰 경우 중단 된 연결이 오류 로그에 기록되고 새로운 연결 시도에 대한 액세스 거부 오류가 기록됩니다. 섹션 B.5.2.11 "통신 오류 및 중단 된 연결" 을 참조하십시오.