24.4.1.6 mysqld에서 오류의 원인을 찾기 위해 서버 로그 사용
일반 쿼리 로그를 활성화하고 mysqld를 시작하기 전에 myisamchk를 사용하여 모든 테이블을 확인하십시오. 제 5 장 「MySQL 서버 관리 " 를 참조하십시오.
mysqld가 비정상적으로 종료 또는 중단 된 경우는 일반 쿼리 로그를 활성화하고 mysqld를 시작하십시오. 섹션 5.2.3 "일반 쿼리 로그" 를 참조하십시오. mysqld가 다시 중단되면 로그 파일의 마지막 부분을 조사하여 mysqld가 종료 된 쿼리를 찾을 수 있습니다.
기본 일반 쿼리 로그 파일을 사용하면 로그는 데이터베이스 디렉토리에
로 저장됩니다. 대부분의 경우, mysqld가 종료 된 로그 파일의 마지막 쿼리이지만 가능하면 mysqld를 재시작하여 발견 된 쿼리를 mysql 명령 행 도구에서 실행하여이 수 을 확인하십시오. 이것이 작동하려면 완료되지 않은 복잡한 쿼리도 모든 테스트하십시오. host_name
.log
또한 시간이 오래 걸릴 모든 SELECT
문에 대해 EXPLAIN
명령을 시도하여 mysqld가 인덱스를 제대로 사용하고 있는지를 확인할 수 있습니다. 섹션 13.8.2 "EXPLAIN 구문" 을 참조하십시오.
실행 시간이 오래 걸리는 쿼리를 찾으려면 슬로우 쿼리 로그를 활성화하고 mysqld를 시작합니다. 섹션 5.2.5 "슬로우 쿼리 로그" 를 참조하십시오.
오류 로그 파일 (일반적으로 hostname.err
라는)에 mysqld restarted
텍스트가있는 경우는 mysqld에서 오류가 발생한 원인 인 쿼리가 발견되었을 가능성이 있습니다. 이것이 발생하면, myisamchk를 사용하여 모든 테이블을 확인하고 ( 제 5 장 「MySQL 서버 관리 " 를 참조하십시오), MySQL 로그 파일 내의 쿼리를 테스트하여 실패 여부 확인 합니다. 그러한 쿼리가 발견되면 먼저 최신 버전의 MySQL로 업그레이드하는 것을 시도하십시오. 이제 해결되지 않고, mysql
메일 아카이브에 도움이 될 답변을 찾을 수없는 경우, MySQL 메일 링리스트에 버그를보고하십시오. 메일 링리스트에 대해서는 http://lists.mysql.com/ 에 설명되어 있으며, 아카이브의 온라인 목록에 대한 링크도 있습니다.
--myisam-recover-options
를 지정해 mysqld를 시작하면, MySQL은 "not closed properly"또는 "crashed"으로 표시되는 MyISAM
테이블을 자동으로 체크하고 복구하려고합니다. 이것이 발생하면, MySQL은 hostname.err
파일에
라고 기록 테이블을 복구 할 필요가있는 경우 ""Warning: Checking table ..."
Warning: Repairing table"
이
그 후에 작성됩니다. 이러한 오류를 다수 받고 그 직전에 예기치 않은 mysqld의 정지가 없었던 경우는 문제가 있기 때문에 더 조사해야합니다. 섹션 5.1.3 "서버 명령어 옵션" 을 참조하십시오.
MySQL 5.6에서는 서버가 MyISAM
테이블의 손상을 감지하면 추가 정보 (소스 파일 이름과 줄 번호 테이블에 액세스하고 있던 스레드의 목록 등)을 오류 로그에 기록합니다. 예를 들어, "Got an
error from thread_id=1,
mi_dynrec.c:368"
입니다. 이것은 버그 리포트를 포함하면 유용한 정보입니다.
mysqld가 예기치 않게 중단하는 것은 좋은 징조가 없지만,이 경우 Checking table...
메세지를 조사하는 것이 아니라, mysqld가 비정상적으로 종료 된 원인을 찾을 수 있도록하십시오.