데이터베이스/MySQL
MySQL : incorrect key file for table tmp
쌀맛나는세상
2009. 5. 11. 16:00
대부분의 DB가 order by, group by 등의 소팅 연산을 할때 in-memory sort or temp-file sort를 하게 된다.
MySQL의 경우 다음과 같은 에러 메시지가 뜨면 ..
날짜 구간이 길어짐에 따라 에러가 다음과 같이 발생하였다.
MySQL의 경우 다음과 같은 에러 메시지가 뜨면 ..
날짜 구간이 길어짐에 따라 에러가 다음과 같이 발생하였다.
Mysql::Error: Incorrect key file for table ‘/tmp/#sql_61a9_0.MYI’;
try to repair it
-
먼저 해 볼 것 : ' analyze table [테이블 명] ' 으로 테이블 상태가 깨진 것인지 확인 해본다.
- 그다음 알아본 것은 mysql 의 my.conf 에서 key_buffer 크기를 늘려봄
- status : error 로 깨져있었음 -> 'repair table [테이블 명] ' 으로 복구 시도 !
- BUT 여전히 안됨..
- 결국 해본 것은..
- key_buffer:16M 에서 256M으로 수정
- BUT 여전히 안됨..
=> 해결 : 유닉스 서버 공간 부족..
- 저장하는 공간 확인해보기.
- df -H : 서버의 공간을 확인해보니 /가 77% 였다. 결국 tmp를 설정 안하면 저장되는 곳이 / 인데 공간 부족이었던것..
- /data1 이 1%사용이라 여기에 /data1/tmp를 만들고 my.conf 에서 tmpdir = /data1/tmp/ 로 설정해주었다.
- 잘 동작함...tmp를 확인해 보니 값을 가져 올때 tmp에 파일을 임시로 생성했다가 다 가져오면 지우는 것을 알 수 있었다.