MySQL 복구하기

관리자 · 2003-11-17 19:57:49
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/ 에 존재한다.