当前位置:  数据库>mysql

如何恢复Mysql数据库的详细介绍

    来源: 互联网  发布时间:2014-10-12

    本文导语:  由于在一台测试机器上打算重新安装Mysql数据库,由于简单粗暴的直接卸载了,没有备份公司Discuz和Redmine使用的Mysql数据库,过程可想的悲惨。 还好的是只是卸载掉了Mysql的程序,所有的数据文件还是存在的。 下面是在恢复数...

由于在一台测试机器上打算重新安装Mysql数据库,由于简单粗暴的直接卸载了,没有备份公司Discuz和Redmine使用的Mysql数据库,过程可想的悲惨。

还好的是只是卸载掉了Mysql的程序,所有的数据文件还是存在的。

下面是在恢复数据库的过程

1. Discuz数据库

Discuz数据库的恢复非常顺利, 在安装好新版本的Mysql后,直接将原来的数据库文件copy到新的数据目录中,重新启动mysql, 就能看到恢复的数据库了

2. Redmine数据库

本打算直接使用上面的经验,也能看到所有的表,但是就是执行查询的时候,总是报错"表不存在".

后来查了一些资料,发现,原因应该是Discuz和Redmine使用的Mysql引擎不一样导致的。

Discuz使用的是MyISAM, 而Redmine使用的是InnoDB.

解决的办法是,

除了要copy数据目录外,还要记得覆盖ibdata1文件。

以表”Table”为例: 如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中. 如类型是InnoDB, 数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中. MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。 而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。 MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:

同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。启动MySQL的Windows服务 由于MySQL这样数据混杂的形式, 往往很容易让使用者在备份时忘记了备份InnoDB, 从而导致了上述错误.

意思就是说在数据库引擎类型为InnoDB时,拷贝数据文件的同时还需要拷贝ibdata1,于是把ibdata1也拷贝过去覆盖,发现还是有点问题,于是停止mysql服务,将目录下的ib_logfile*文件全部删除掉,重新启动mysql服务,well done,可以了

高兴啊,于是稍微总结了,希望以后遇到相同的问题,能够快速解决。

1,在进行mysql数据库备份的或迁移的时候,尽量备份完成所需要的数据;

2,如果直接拷贝原有数据库文件"*.frm"、"*.MYD"、"*.MYI"等文件时候,如果原数据库引擎是InnoDB,切记还需拷贝ibdata1文件

3,备份数据库的时候,最好是用相关的工具进行备份或是导出sql文件,以免浪费时间在数据库恢复上

4,msyql版本或是备份工具的版本不同,也可能引起数据恢复有问题。

实践证明以上问题是存在的,解决方案是可行的,哈哈,为了以后方便,写了这篇博客随笔,希望大牛看到了不要鄙视,欢迎拍砖。

 1:MyISAM类型的数据文件可以在不同操作系统中COPY,这点很重要,布署的时候方便点。(只需要拷贝 数据库名字文件夹下面的文件,这样数据库就拷贝完了)

2:  InnoDB类型的 要注意多拷贝 ibdata1 , 最好不要是直接复制文件夹,而是应该用sql导入导出


    
 
 

您可能感兴趣的文章:

  • OpenLDAP 的数据库文件坏了,怎么恢复? (从LDIF文件恢复) ??? 急啊.....
  • MySQL数据库备份恢复程序 MySQLDumper
  • sql数据库如何查询修改数据库恢复模式?
  • Oracle数据库备份和恢复工具 RMan
  • Oracle数据库恢复后心得
  • 我不小心用mysqlfront把一个mysql数据库删除了,能不能恢复(没有备份),大家一定要救我阿。
  • sql server中通过查询分析器实现数据库的备份与恢复方法分享
  • 如何强制删除或恢复SQLServer正在使用的数据库
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
  • sqlserver只有MDF文件恢复数据库的方法
  • RpM数据库丢失不能安装软件怎么恢复阿?
  • LINUX下如何恢复mysql数据库
  • 数据库备份 SQLServer的备份和灾难恢复
  • mssql无数据库日志文件恢复数据库的方法第1/2页
  • Oracle数据库冷备份的异地恢复
  • 数据库备份与恢复问题??
  • MySQL数据库备份与恢复方法
  • 实战Oracle数据库备份与恢复
  • 如何恢复数据库的账号 登录名/用户名等
  • oracle drop table(表)数据恢复方法
  • 磁盘管理及数据恢复软件 DiskGenius
  • 数据恢复和文件解压工具 Lziprecover
  • 如何恢复被linux覆盖的原Windows下数据?
  • 数据恢复工具 parchive
  • 数据恢复工具 safecopy
  • 磁盘数据恢复工具 GNU ddrescue
  • linux数据恢复问题
  • 如何恢复linux下ext2/3的硬盘数据
  • 救救我的数据!帮我恢复数据者,提供100分!
  • 救命:在linux下有什么办法恢复刚刚删除的数据?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • Ext4文件恢复工具 giis-ext4
  • 如何进行MongoDB自动备份增量备份和恢复
  • Windows文件恢复工具 Recuva
  • linux如何恢复系统
  • unix下怎样恢复被删除的文件?
  • Linux文件恢复工具 gET iT i sAY
  • 请问用rm 命令删掉的目录(含文件)有什么办法恢复?
  • 如何在客户端恢复FTP服务器(UNIX)被删除的文件??? iis7站长之家
  • 我在redhat 7.0下删除了整个目录,能不能恢复?
  • 误删了文件!如何恢复呀!急!急!在线等!
  • 磁盘恢复工具 PhotoRec
  • 如何在客户端恢复FTP服务器(UNIX)被删除的文件???
  • Drupal 恢复工具 Drupowa
  • 谁能帮我!错手把逻辑盘的东西删了,能不能恢复。
  • 恢复启动列表?
  • 如何恢复引导redhat7.2
  • 急~~ 如何恢复损坏的.tar.gz压缩包!
  • 中断恢复现场时怎样判断进程运行到那一步,如何无缝连续运行的呢?
  • 求助:如何在SCO UNIX中恢复已经删除的文件
  • linux系统格式化后,能否恢复。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3