2011-10-16 8 views
2

나는 모든 데이터를 MySQL의 .frm 파일에 가지고있다. 데이터를 어떻게 복원 할 수 있습니까? 나는 그 (것)들 전부를, 다만 몇몇 기록 및 테이블을 복구하고 싶지 않다 그래서 나가 그 (것)들에서 덤프를 만들 필요가있다.MySQL .frm에서 데이터를 복원하는 방법은 무엇입니까?

볼 수 있듯이 .frm 파일, .myd 파일 만 있습니다. 그러나 ibdata1 파일이 있습니다. 어떻게 복원해야합니까?

+0

mySQL의 데이터 디렉토리의 전체 사본이 있습니까? –

+0

스키마 만 포함되어 있기 때문에 파일에서 frm의 데이터를 복원 할 수 없습니다. ibdata 파일이나 하나의 커다란 ibdata 파일을 가지고 있다면 테이블의 무한한 세트를 갖게됩니다. [Link1] (http://www.nerdydork.com/restoring-mysql-innodb-files-on-windows.html) [Link2] (http://www.chriscalender.com/?p=28) – Jauzsika

답변

6

나는 그것을 작동시켰다.

1) 로컬 설치에서 실제 데이터베이스가 서버에 있던 이름으로 이름이 지정된 빈 데이터베이스를 만들었습니다.

2) 나는 (윈도우에 루트 드라이브에 숨겨진 폴더였다) 내 로컬 MySQL의 데이터 디렉토리에 세 IB * 파일을 복사 "mysqld에"

3)을 죽였다. my.cnf에 따라 InnoDB 데이터 파일 디렉토리에 복사했는지 확인하십시오. InnoDB와 MyISAM 데이터는 다른 폴더에 저장 될 수 있습니다. .frm 파일도 복사했습니다.

4) 나는 use mydb; select * from mytable; 반환 된 결과를 확인하기 위해 mysql -uroot -pmypass를 실행)

5 "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files (x86)\MySQL\MySQL Server 5.1\my.ini" --innodb-force-recovery=6을 달렸다.

6) 나는 mysqldump mydb mytable --compact > file.sql 그것 뿐이다

를 사용!

+0

당신! 아저씨 .. 내 삶을 살았어! – func0der

+0

당신이 저를 해결책으로 인도 해주었습니다.'ibdata *'파일은 mysql/data/파일 안에 있었는데, 각각의 데이터베이스 폴더 안에 위치 할 것으로 기대 했었습니다. – Brett

관련 문제