참고하세요... 위와 같은 에러는 DB가 쓰기를 시도하는 도중에 재시작할 경우에, 위와같은 인덱스 에러가 발생합니다... mySQL이 isam 방식을 사용하기 때문인데요... 서버관리자분들 참고하세요... 복구하는 방법은... myisamchk 라는 도구를 이용하시면 됩니다.
# myisamchk --recover --quick 테이블이름
하시면 quick 하게 복구 됩니다. 엥? 그래도 복구가 안된다구요?
# myisamchk --recover 테이블이름
하시면 됩니다. 엥? 그래도 안된다구요?
# isamchk --safe-recover 테이블이름
하시면 됩니다.
저도 처음 이런 에러 접했을 때, 꽤나 당황한 것 같은데...
저 명령 한줄에 순식간에 복구가 되더군요... (황당)
뉴21 같은 호스팅을 하시는 경우에는 관리자만 실행할 수 있는 명령이니까, 복구요청하시면 됩니다.
:맥노턴.
ERROR 1016: Can't open file: '테이블이름.MYI'. (errno: 145)
(복구하기)
# 테이블명.MYI 파일이 있는곳에서 실행해야한다.(ex : 테이블명 - test)
# DB명 : testtest
# Table명 : test
ex)
1. 에러난 파일 : 테이블명.MYI
2. 아래 명령어 실행위치는 /usr/local/mysql/data/testtest(오류난 테이블 DB명)
3. 명령어 실행
[root@localhost root]# /usr/local/mysql/bin/myisamchk -r 테이블명.*
myisamchk: error: '테이블명.frm' is not a MyISAM-table
---------
myisamchk: error: '테이블명.MYD' is not a MyISAM-table
---------
- recovering (with sort) MyISAM-table '테이블명.MYI'
Data records: 7
- Fixing index 1
- Fixing index 2
- Fixing index 3
- Fixing index 4
- Fixing index 5
- Fixing index 6