PMA에서 데이터베이스를 복원하려고 하는데 frm 및 ibd 파일에만 액세스할 수 있습니다. 필요한 ib_log 파일에는 액세스할 수 없습니다.
데이터베이스 데이터를 복구하지 못할 수도 있다는 것을 알고 있는데 frm 파일에서 테이블 구조를 복구할 수 있나요?
P粉0435663142023-10-20 00:08:59
InnoDB에는 데이터 복구를 위해 ib_log 파일이 필요하지만 데이터 사전과 때로는 테이블에 대한 보류 중인 데이터가 포함된 ibdata1 파일도 필요합니다.
데이터 사전은 테이블의 구조를 기록하고 테이블 ID를 테이블 데이터가 포함된 물리적 .ibd 파일과 일치시키는 반복 시스템입니다.
InnoDB 데이터 사전 없이는 .ibd 파일을 이동할 수 없으며, 데이터 사전은 .ibd 파일에 있는 테이블 ID와 일치해야 합니다. .ibd 파일을 다시 첨부하고 데이터를 복구할 수할 수 있지만이 과정은 마음이 약한 사람에게는 적합하지 않습니다. http://www.chriscalender.com/ibd 파일에서만 innodb 테이블 복구/
를 참조하세요..frm 파일을 사용하여 일부 파일 트릭으로 구조를 복원할 수 있지만 애초에 InnoDB 테이블로 생성할 수는 없습니다. 다음은 .frm 파일을 MyISAM 테이블로 복원하는 방법을 설명하는 블로그입니다. http://www.percona.com/blog/2008/12/17/recovering-create-table-statement-from-frm-file/" percona.com/blog/2008/12/17/recovering-create- FRM-파일의 테이블-문장/
이 경우에는 PMA를 사용할 수 없습니다. 서버의 데이터 디렉터리에 대한 수퍼유저 액세스 권한이 필요합니다.
P粉5692054782023-10-20 00:04:57
.frm
和 .idb
파일에서만 테이블을 복원했습니다.
테이블의 스키마를 이미 알고 있다면 이 단계를 건너뛸 수 있습니다.
먼저 MySQL 유틸리티를 설치합니다.
그런 다음 명령 프롬프트(cmd)에서 mysqlfrm
명령을 사용할 수 있습니다.
두 번째, mysqlfrm
命令从 .frm
명령을 사용하여 .frm
파일에서 SQL 쿼리를 가져옵니다.
그런 다음 SQL 쿼리를 가져와 동일한 구조의 테이블을 생성할 수 있습니다. 이렇게:
으아아아위의 SQL 쿼리를 사용하여 테이블을 생성합니다.
오래된 데이터가 여전히 존재하는 경우 해당 데이터베이스와 테이블을 먼저 삭제해야 할 수도 있습니다. 데이터 파일의 백업이 있는지 확인하십시오.
새 테이블 데이터를 삭제하려면 다음 쿼리를 실행하세요.
으아아아새 .frm
文件和(新的、空的).idb
文件之间的连接。另外,删除文件夹中的 .idb
파일이 삭제됩니다.
그런 다음 이전 .idb
파일을 새 폴더에 넣습니다. 예:
꼭 .ibd
文件可以被 mysql
用户读取,例如通过在文件夹中运行 chown -R mysql:mysql *.ibd.
이전 데이터를 가져오려면 다음 쿼리를 실행하세요.
으아아아이렇게 하면 .idb
파일에서 데이터를 가져오고 데이터가 복원됩니다.