在Mysql5.0的使用过程中,经常会出现一些莫名奇妙的问题,导致服务无法启动,只好重新安装MySQL,但是这样原来的数据库就会丢失了。
听说MySQL的数据库文件直接复制便可以使用,但是根据查询,那是指原来的一种“MyISAM”类型的表。
我通常都是使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上好像只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。
MyISAM类型的表我试过,好像直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。
在网上搜索了很多办法:
一种说同时拷贝“ibdata1”等等文件,但是这样却造成新的数据库无法启动。
一种好像说使用“truncate table 表名”这样的命令来恢复表结构,也不成功
还有说用什么“mySQLdump.exe”,但是这种方法的前提好像需要数据库是好的,并且能够正常启动运行,而我现在是数据库坏掉了,只剩下表文件……
被这个问题真是搅的头疼,希望有经验的高手能给出一个彻底的解决方法:
就是,我现在手头上只有InnoDB类型的frm表文件的话,如何能够将表恢复到一个新的数据库中?还有能恢复数据更好了!
编程论坛 1 个网友回答:
我以前MySQL坏了,重新安装之后,发现所有旧数据库都没有丢失阿,都可以用呢
应该只有Mysql中的mySQL数据库被重新覆盖了
编程论坛 2 个网友回答:
把DATA目录下的Mysql目录改名,然后重新安装MYSQL。
之后你就知道怎么做了。
编程论坛 3 个网友回答:
把重新安装的新Data文件夹删除掉
之后再把原来的Data文件夹名改回来
呵呵,没试过,应该可行
编程论坛 4 个网友回答:
谢谢各位回复。
大概找到一种解决方法了,就像我问题中提到的网上搜的第一种方法那样:
同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。启动MySQL的Windows服务,如果不能成功的话,查看data文件夹中有个“*.err”错误日志文件,其中会对启动失败的原因有所描述的。比如我碰到过两种错误原因。
一种是类似这样的错误信息:
