MyISAM
MyISAM 테이블 mydb.mytable의 경우 세 개의 파일이 있어야합니다.
\bin\mysql\mysql5.6.12\data\mydb\mytable.frm
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYD
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYI
각 파일에는 필요한 데이터, 메타 데이터 및 색인 정보가 포함되어 있으므로 이미 테이블로 액세스 할 수 있어야합니다. 종합적으로 그들은 테이블을 형성합니다. 액세스 할 외부 스토리지 엔진 메카니즘이 없습니다.
InnoDB
이 InnoDB의 그림 표현을 살펴보십시오
ibdata1을 .ibd
파일에 첨부하는 유일한 것은 데이터 사전입니다.
당신의 임무는 당신이 그것을 수락하기로 결정한다면, 각 테이블을 생성하고 .ibd
어떤 작업을 수행하기 전에 "\ bin \ mysql \ mysql5.6.12 \ data"의 전체 사본을 다른 사본으로 작성하십시오.
여기 샘플이 있습니다
mydb
테이블 이있는 데이터베이스가 있다고 가정 합니다 mytable
. 이것은 의미
- 폴더가 있습니다
\bin\mysql\mysql5.6.12\data\mydb
- 그 폴더 안에는
당신이 필요합니다 .frm
. 내 게시물을 보면 어떻게 .frm 파일에서 테이블 스키마를 추출 할 수 있습니까? , 테이블 작성에 필요한 SQL을 생성 할 수있는 MySQL 유틸리티를 다운로드 할 수 있습니다.
이제 다음을 수행해야합니다
- 이동
mytable.ibd
에\bin\mysql\mysql5.6.12\data
- SQL을 실행하여 InnoDB 테이블을 작성하십시오.
- mysql에 로그인하고 실행하십시오
ALTER TABLE mydb.mytable DISCARD TABLESPACE;
(삭제됩니다 \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
)
- 복사
\bin\mysql\mysql5.6.12\data\mytable.ibd
에\bin\mysql\mysql5.6.12\data\mydb
- mysql에 로그인하고 실행하십시오
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
( \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
데이터 사전에 등록 됩니다)
그 후에는 테이블에 mydb.mytable
완전히 액세스 할 수 있어야합니다. 다음을 간단히 실행하여 접근성을 테스트 할 수 있습니다.
SELECT * FROM mydb.mytable LIMIT 10;
시도 해봐 !!!
DRINK (데이터 복구에 필요한 지식 통합)