Mysql数据库有两种不同的引擎:innodb和MyISAM类型。MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。而“InnoDB”类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。
即在data目录下,myisam类型的数据库对应的文件夹下每个表会对应三个文件:*.MYD,*.MYI,*.frm。而innodb类型的数据库对应的文件下每个表只对应一个*.frm文件,即innodb类型的数据库不会将数据保存在相应的文件夹下,所有innodb类型的数据库都将数据保存在data目录下的ibdata1文件中。上述区别导致innodb数据库在不同电脑间直接复制是不行的。
下面讲一下如何将一个Innodb类型的数据库复制到另一台电脑下(可以用于恢复MyISAM数据库):
以恢复wordpress数据库为例:(1)在另一台电脑上新建一个和本机版本一致的Mysql数据库软件作为备份Mysql,并停止其mysql服务;(2)将本机data下的wordpress文件夹复制到备份Mysql的data目录下;(3)复制本机的ibdata1文件替换备份Mysql的ibdata1文件;(4)删除备份Mysql下的ib_logfile0、ib_logfile1两个文件;(5)启动备份Mysql服务,现在在备份Mysql就可以看到wordpress的数据了,数据恢复成功。如果不同于启动MySQL的Windows服 务,查看data文件夹中有个“*.err”错误日志文件,其中会对启动失败的原因有所描述的。
详情参考:
http://blog.zuobus.com/archives/68.html
http://blog.csdn.net/softwave/article/details/6105287
http://hi.baidu.com/du_liang/item/220c7d0bfa632a12addc703b
转载请注明:jinglingshu的博客 » 博客数据丢失反思与mysql数据恢复学习