안녕하세요 서비스운영팀 서정민 입니다.
mysql DB에 table이 깨졌을 때 복구하는 방법을 포스팅 하려고 합니다.
### mysql select ERROR ###
1. mysql에서 select 시 error 메시지(mysql 접속후 확인)
ERROR 1030 (HY000): Got error 134 from storage engine
-> analyze table 테이블명;
-> repair table 테이블명;
ex) mysql계정에 접속하여 테이블이 깨진걸 확인했을 경우 아래와 같이 복구를 한다.
mysql> select * from 테이블명;
ERROR 1016: Can’t open file: ‘테이블명.MYI’. (errno: 145)
mysql> analyze table 테이블명; ==> 테이블 검사
+—————————-+———+———-+——————————————————+
| Table | Op | Msg_type | Msg_text |
+—————————-+———+———-+——————————————————+
| db.테이블명 | analyze | error | Can’t open file: ‘테이블명.MYI’. (errno: 145) |
+—————————-+———+———-+——————————————————+
1 row in set (0.00 sec)
mysql> repair table 테이블명; ===> 테이블 복구
+—————————-+——–+———-+———-+
| Table | Op | Msg_type | Msg_text |
+—————————-+——–+———-+———-+
| db.테이블명 | repair | status | OK |
+—————————-+——–+———-+———-+
1 row in set (0.00 sec)
mysql>
정상적으로 복구 된 것입니다.
2. 테이블 검사, 복구 (shell상에서 해당 데이터베이스로 이동)
myisamchk -c 테이블명 <== 테이블 검사
myisamchk -r 테이블명 <== 테이블 복구
감사합니다.