innodb 데이터 깨졌을 경우 복구 방법 (Table [테이블명] doesn't exist in engine)

리눅스/MySQL|2018. 4. 30. 17:49
반응형

[증상]


ERROR 1932 (42S02): Table [테이블명] doesn't exist in engine



[해결]


1) 전제

  - 해당 테이블의 엔진은 InnoDB 이며 ibd, frm 파일이 존재함.

  - 테이블의 스키마 구조를 알아야 함.


2) 실행

- 서비스 종료 후 ibd 파일, frm 파일 백업

- 서비스 시작 후 해당 테이블 drop

- 테이블 재생성

- 테이블스페이스 변경


mysql> ALTER TABLE [테이블명] DISCARD TABLESPACE ;

system cp /백업경로/[테이블명].ibd [데이터베이스 데이터 디렉토리]

mysql> ALTER TABLE [테이블명] IMPORT TABLESPACE ;



출처: http://adbancedteam.tistory.com/194 [aDBanced Team]

반응형

댓글()