2009-03-19

INnodb引擎建立表该如何恢复

问题:data文件夹有备份,重装mysql后将文件夹拷贝过去,其他的表都没问题,只有wordpress的数据表有问题,数据库倒是显示了,但是数据库里没有任何表

原因:wordpress的数据表是用INnodb引擎建立的,所以导致这个问题

分析:如果是MyISAM (MySQL缺省存贮引擎)那么直接拷贝data文件夹下相应数据库的文件夹过去就可以了,而INnodb引擎建立的表的数据却存在 data/ibdata1文件里,即使原模原样直接拷贝过去表也不能显示,如何从IBData中恢复MySQL数据库?

恢复过程:

1、停止MySQL服务
2、在[mysqld]段中增加:innodb_force_recovery = 4
3、修改文件中datadir以及innodb_data_home_dir的指向--指向之前的数据文件目录,保存my.ini
4、启动数据库(如果不能启动,请清除日志文件:data/ib_logfile0,data/ib_logfile1)
6、停止数据库 注释掉innodb_force_recovery = 4项
7、重新启动数据库,应该可以用mysqldump导出数据了

参考:

如何从IBData中恢复MySQL数据库

MySQL InnoDB 数据库的恢复

其他相关文章:

MySQL:InnoDB和MyISAM的差别

MYSQL服务不能启动 错误1067:进程意外中止(仅为其中一种的解决方法)

没有评论: