innodb 데이터 깨졌을 경우 복구 방법 (Table [테이블명] doesn't exist in engine)
리눅스/MySQL2018. 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]
반응형
'리눅스 > MySQL' 카테고리의 다른 글
테이블 복사 및 데이터 복사하기 (0) | 2018.05.02 |
---|---|
테이블 엔진 변경하기 (0) | 2018.05.01 |
mysqldump 명령시 부하 줄이는 옵션 (0) | 2017.10.19 |
mysql 테이블 생성 예제 (0) | 2017.09.01 |
우분투 16.04 에서 MySQL 5.7.13 DATA 디렉토리 변경 (0) | 2016.09.02 |
댓글()