听棠.NET

用积极乐观的心态,面对压力
posts - 307, comments - 10808, trackbacks - 112, articles - 5
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

如何移值(恢复、还原)Mysql中的innoDB的数据库。

Posted on 2009-12-23 21:06 听棠.NET 阅读(...) 评论(...) 编辑 收藏

今天搞了一天,终于搞定了。

对于Mysql有两种模式,MYISAM与INNODB

如果是MYISAM的话,在data目录下里会.frm .myd .myi 三种文件,那么直接把DATA移过去,配置好权限就可以还原了。

如果是INNODB的话,那是相当的烦啊。在data目录下只有.frm(这只是一个数据格式),这个移过去后,是无法还原原始数据的。

真正的数据是正放在data目录下的iddata1里。因此,如果有这个文件,那么还是有希望还原的。

 

但我试了网上所有的文章,都还是提示“数据库里没有表”。

最后我找到了答案。那就是my.ini的配置文件。里面有一项:

innodb_data_home_dir="C:\Program Files\MySQL\MySQL Server 5.1\data"

只要把上面的地址设为你正确的地址就可以了。

记得重启一下mysql (在CMD里输入net stop mysql,然后net start mysql)就可以了还原了。。。

我花了一天时间发现的问题,希望能对同样遇到问题的朋友有所帮助。

 

总结,对于Mysql还是默认采用MYISAM的比较好,容易转移。数据库与数据库是分开的,不会混在一起。所以可以在My.ini里设一下默认项:

default-storage-engine=MYISAM

 

good luck!!