실수로 운영체제 파일이 손상되는 바람에 재 설치를 했는데, 

로컬에서 사용중인 mysql 서버가 기존 데이터들을 읽지 못하는 현상이 발생했다. 


찾아보니 다행히 쉽게 복구할 수 있는 방법이 있었다.


사용도구 : MYSQL5, PHPMYADMIN 4.2.9 




.frm 파일을 가지고 있을 경우 :

mysqlfrm 도구(https://dev.mysql.com/doc/mysql-utilities/1.5/en/mysqlfrm.html)를 이용하면 테이블 구조를 추출할 수 있다.


만약 파일이 없을 경우 :

테이블 구조를 수동으로 생성해준다. 


수동으로 생성하는 경우 저장 엔진(Storage Engine)이 InnoDB가 맞는지 꼭 확인해줘야 한다. 

시스템 이전으로 인한 복구의 경우 간혹 "MyISAM" 혹은 기타 다른 엔진으로 설정된 경우가 있다.






정상적으로 테이블이 만들어진 모습




ALTER TABLE %테이블명% DISCARD TABLESPACE 명령어를 이용해서 기존에 연동된 데이터를 해제한다.





MYSQL 데이터 폴더(%MYSQL5_FOLDER%\data\DB이름)에 들어가보면 우리가 생성한 테이블명으로 

.frm 파일이 자동으로 생성되어 있는 것을 확인할 수 있다.



백업해둔 .ibd 파일을 폴더에 넣는다. 






ALTER TABLE %테이블명% IMPORT TABLESPACE 명령어를 이용하여 현재 데이터들을 연동한다.




정상적으로 데이터가 인식되고, 추가된 것을 볼 수 있다. 






+ Recent posts