DB사용시 에러가 발생하였을 경우에는 mysql에서 남기는 에러로그를 살펴보아야하고 또 나오는 에러메시지 번호를 이용하면 웬만한것은 다 처리가 가능합니다.
저도 파티션 용량이 부족하여 /tmp에 쓰기를 하지 못해서 순간 버벅대다가 에러메시지를 참고로 하여 고쳤습니다. 아무리 급해도 일단은 나오는 에러메시지부터 정확히 판단하는것이 중요한데 실제 실무작업을 할때는 이렇게 하지 않고 엄한 것만 뜯어고치는 경우가 많지요. 물론 저도 마찬가지구요.
예를 들어 order by 등 정렬등을 할때 하드디스크에 임시로 정렬 테이블을 만들경우 mysql 서버에 설정된 /tmp 디렉토리를 이용하는데 이 디렉토리가 꽉 차있는경우에는 에러메시지가 발생합시다. 예를 들어 에러메시지가 28이나 23이 나왔다고 하면 아래처럼 perror 명령을 이용하여 원인을 찾을 수 있습니다.
$ perror 28 23
Error code 28: 장치에 남은 공간이 없음
Error code 23: 시스템에 열린 파일이 너무 많음
위에서 파티션이 부족한경우에는 28 코드가 나옵니다. 공간이 없다는 말이지요. 결국 /tmp 디토리를 다른 디렉토리로 심볼릭 링크 시키거나 my.cnf 파일등에서 tmpdir 이란 변수를 아예 바꾸어주어야하지요.
에러메시지 확인하는것에 대해 알고 있다면 쉽게 처리가 가능하지만 그게 아닌 경우에는 정말 생쇼합니다.
일반적으로 발생하는 문제점들은 매뉴얼에서 \Problems and Common Errors\라는 내용에 들어가있는데 여기 내용은 한번 쫙 보는게 좋은 듯 합니다.
항상 중요하면서도 넘어가는것이 기본적인 부분들이죠. 코드빼놓고 컴퓨터 켜지지 않는다고 하는것.
|