mysql环境:windowsxp mysql5.0.27-community-nt gbk
平时常通过直接复制MySQL数据库文件来备份,MyISAM格式的表支持直接copy,但是Innodb表不支持。
如果ibdata1数据文件还在,数据库名目录下的.frm文件也在。注意:InnoDB表数据一般是存贮在ibdata1这个文件当中,位于C:Program FilesMySQL Server 5.0data目录下。
我今天的恢复方法:
1、在另一个电脑上安装一下相同版本的mysql服务器。因为我的数据字符集是gbk,安装mysql的时候选的也是gbk。
2、cmd下:net stop mysql //停止mysql服务。
3、把原来备份好的ibdata1文件拷贝到mysql安装位置的data目录。把原来的数据库目录(如qcmood)也copy到data目录下。
4、把data目录下的ib_logfile0,ib_logfile1这两个文件删除,不然不能重新启动mysql。
5、cmd下:net start mysql //开启mysql服务,然后用mysql的命令行就可以查看恢复的数据了。
注 意:通过直接copy的方式转储数据库,只有MyISAM格式的表可以运行,通过phpmyadmin虽然可以看到Innodb表的表名,但是点击表名会 出现:#1146 – Table ‘qcmood.user_fbzw’ doesn’t exist,说明数据并不存在。所以Innodb表不能直接copy复制,不过还是有方法的,可查看http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#backing-up。