필자는 MySQL의 innodb 엔진을 사용하고 있다가 특정 테이블이 깨졌었다.

사실.. 귀찮아서 복구를 미루다가 이참에 포스팅 해본다.

우선 mysql 데몬을 중지한다.

my.cnf의 [mysqld] 부분에 아래와 같이 추가하고 데몬을 재시작한다.

[root@yongbok ~]# nano /etc/my.cnf

[mysqld]

innodb_force_recovery = 4

 

mysqldump로 깨진 테이블이 있는 데이터베이스를 dump한다.

[root@yongbok ~]# mysqldump -u [userid] -p [db_name] > /path/to/directory/db_name.sql

 

ex1)

[root@yongbok ~]# mysqldump -u ruo91 -p ruo91_db > /tmp/ruo91_db.sql

Enter password:

mysql 데몬을 중지하고 my.cnf의 innodb_force_recovery = 4 구문을 지운다.

그후 mysql를 시작하면 복구가 끝난다.

 

참고

http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html