Loading...
MySQL 9.5 Reference Manual 9.5의 B.3.1 How to Determine What Is Causing a Problem의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
문제에 부딪혔을 때 가장 먼저 해야 할 일은 어느 프로그램 또는 어떤 장비가 문제를 일으키고 있는지 찾아내는 것입니다:
다음과 같은 증상 중 하나라도 있다면, 이는 아마도 하드웨어 문제(예: 메모리, 마더보드, CPU, 또는 하드 디스크)나 커널 문제일 가능성이 큽니다:
키보드가 동작하지 않습니다. 이는 보통 Caps Lock 키를 눌러서 확인할 수 있습니다. Caps Lock 불이 변하지 않으면 키보드를 교체해야 합니다. (그 전에 컴퓨터를 재시작하고 키보드에 연결된 모든 케이블을 확인해야 합니다.)
마우스 포인터가 움직이지 않습니다.
이 머신이 원격 머신의 ping에 응답하지 않습니다.
MySQL과 관련 없는 다른 프로그램들이 정상적으로 동작하지 않습니다.
시스템이 예기치 않게 재시작되었습니다. (문제가 있는 사용자 수준 프로그램만으로는 시스템 전체를 중단시킬 수 없어야 합니다.)
이 경우에는 모든 케이블을 점검하고 하드웨어를 검사하는 진단 도구를 실행하는 것부터 시작해야 합니다! 또한 운영 체제에 문제를 해결할 수 있을 만한 패치, 업데이트, 서비스 팩이 있는지 확인해야 합니다. glibc와 같은 모든 라이브러리가 최신 상태인지도 확인하십시오.
메모리 문제를 조기에 찾아내기 위해 ECC 메모리가 장착된 머신을 사용하는 것이 항상 좋습니다.
키보드가 잠긴 경우, 다른 머신에서 이 머신으로 로그인한 뒤 kbd_mode -a를 실행하여 복구할 수 있는지 시도해 볼 수 있습니다.
문제의 원인을 찾기 위해 시스템 로그 파일(/var/log/messages 또는 유사한 파일)을 확인하십시오. 문제가 MySQL에 있다고 생각되면, MySQL의 로그 파일도 확인해야 합니다. Section 7.4, “MySQL Server Logs”를 참조하십시오.
하드웨어 문제라고 생각되지 않으면, 어떤 프로그램이 문제를 일으키는지 찾아야 합니다. top, ps, Task Manager 또는 이와 유사한 프로그램을 사용하여 어느 프로그램이 모든 CPU를 사용하고 있거나 머신을 잠그고 있는지 확인해 보십시오.
top, df 또는 유사한 프로그램을 사용해 메모리, 디스크 공간, 파일 디스크립터 또는 기타 중요한 리소스가 부족하지 않은지 확인하십시오.
문제를 일으키는 프로세스가 runaway 프로세스라면, 이를 kill해 볼 수 있습니다. 종료되지 않는다면, 운영 체제에 버그가 있을 가능성이 있습니다.
다른 모든 가능성을 검토한 끝에 MySQL 서버 또는 MySQL 클라이언트가 문제의 원인이라고 결론을 내렸다면, 이제 버그 리포트를 작성할 차례입니다. Section 1.6, “How to Report Bugs or Problems”를 참조하십시오. 버그 리포트에는 시스템이 어떻게 동작하고 있으며, 무슨 일이 일어나고 있다고 생각하는지에 대한 완전한 설명을 제공하도록 하십시오. 또한 왜 MySQL이 문제를 일으킨다고 생각하는지도 명시하십시오. 이 장에서 설명한 모든 상황을 고려하십시오. 시스템을 조사할 때 관찰되는 문제를 그대로 정확히 서술하십시오. 프로그램과 로그 파일에서 나오는 출력과 에러 메시지는 “copy and paste” 방식으로 포함시키십시오.
어떤 프로그램이 동작하지 않는지, 그리고 관찰되는 모든 증상을 자세히 설명하려고 노력하십시오. 과거에 “시스템이 동작하지 않는다.”라는 내용만 있는 버그 리포트를 여러 번 받은 적이 있습니다. 이런 정보만으로는 무엇이 문제인지 전혀 알 수 없습니다.
어떤 프로그램이 실패했을 때, 다음 정보가 있으면 항상 유용합니다:
해당 프로그램이 segmentation fault를 일으켰습니까(즉, core dump가 발생했습니까)?
프로그램이 사용 가능한 모든 CPU time을 사용하고 있습니까? top으로 확인하십시오. 프로그램을 잠시 실행 상태로 두십시오. 단순히 계산량이 많은 작업을 수행하고 있을 수도 있습니다.
mysqld 서버가 문제를 일으키는 경우, mysqladmin -u root ping 또는 mysqladmin -u root processlist 명령으로 이 서버로부터 어떤 응답이라도 받을 수 있습니까?
예를 들어 mysql과 같은 클라이언트 프로그램으로 MySQL 서버에 접속을 시도할 때, 해당 클라이언트 프로그램은 무엇이라고 말합니까? 클라이언트가 멈춥니까? 프로그램으로부터 어떤 출력이라도 얻을 수 있습니까?
버그 리포트를 보낼 때에는 Section 1.6, “How to Report Bugs or Problems”에 설명된 형식을 따라야 합니다.
B.3 Problems and Common Errors
B.3.2 Common Errors When Using MySQL Programs