MySQL 테이블이 손상된 경우 myisamchk
페이지 정보
본문
* 엔진이 MyISAM 인경우 테이블 복구 방법
# mysql -uroot -p 데이터베이스명
mysql> use DB이름;
mysql> check table 에러난테이블명;
mysql> repair table 에러난테이블명;
만약 repair table 명령으로도 복원이 안되는 경우 myisamchk 명령으로 강제로 수행합니다.
# cd /usr/local/mysql/data/데이터베이스명
# /usr/local/mysql/bin/myisamchk -r -f 깨진테이블명
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/ 입니다.
참고자료
http://cafe.naver.com/7point/147
댓글목록
등록된 댓글이 없습니다.