mysql 테이블이 손상된 경우 myisamchk

by ADMINPLAY posted Oct 30, 2008
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

mysql 복구하기

mysql> select * from SMHWINFO;
ERROR 1016: Can\'t open file: \'SMHWINFO.MYD\'. (errno: 145)

위와 같은 mysql 에러가 발생하면 mysql 테이블이 손상된 경우입니다.

MYD확장자를 가진 파일은 mysql data를 저장하는 파일입니다.
일단 DB를 내리고 MYD, MYI, frm 파일을 백업해둡니다.

(이경우의 백업은 파일 백업을 말하는것이다.)
그리고나서 myisamchk로 복구를 시도해봅니다.

killall mysqld ->mysql 데몬 죽이기
./myisamchk --safe-recorver /usr/local/mysql/data/DB명/복구할 테이블명

여기서 myisamchk 파일이 패스가 걸려있으면 아무곳에서나 실행이 가능하지만 아닌경우에는 mysql이 설치된 디렉토리의

bin 디렉토리 아래에 있습니다.

ex)/usr/local/mysql/bin/myisamchk

/usr/local/mysql/data 이 경로는 소스컴파일 할때 MYD가 저장될 디렉토리명을 data로 바꿔준 경우입니다.
소스컴파일 할때의 디폴트 설정은 /usr/local/mysql/var 로 되어있고, rpm 의 경우에는 /var/lib/mysql/ 입니다.