mysql未通过正常导出,服务器挂掉时通过frm文件恢复遇到问题
来源:互联网 发布:数据分析师含金量 编辑:程序博客网 时间:2024/05/21 00:45
由于在一台测试机器上打算重新安装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导入导出
转载自:http://www.jb51.net/
- mysql未通过正常导出,服务器挂掉时通过frm文件恢复遇到问题
- MySql数据库通过idb和frm恢复
- Mysql 通过frm&ibd 恢复数据
- MySQL ibdata损坏或丢失 通过frm&ibd文件恢复数据
- ubuntu14.04下通过.frm, .MYD,.MYI文件恢复建立mysql数据库
- ubuntu14.04下通过.frm, .MYD,.MYI文件恢复建立mysql数据库
- 通过.frm和.ibd对mysql数据恢复
- MySQL通过.frm和.ibd恢复表结构和数据
- mysql数据库恢复frm文件
- mysql数据库恢复(*frm)文件
- Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据
- Mysql ibdata 丢失或损坏通过frm&ibd 恢复结构&数据
- mysql通过mysql-bin文件恢复数据
- mysql 恢复数据库----*.frm,*.myd,*.myi文件
- MYSQL数据文件--.frm文件(表结构恢复)
- mysql frm ibd 文件恢复数据
- .frm文件恢复mysql的数据结构
- mysql使用“.frm”文件恢复表结构
- Sublime Text
- 链表翻转
- CCScrollView使用实例(一)-- 制作滚动列表
- __GUNC__宏定义
- java文件操作getAbsolutePath和getCanonicalPath的区别
- mysql未通过正常导出,服务器挂掉时通过frm文件恢复遇到问题
- Hadoop的fsck工具
- selenium webdriver定位不到元素的五种原因及解决办法
- 深入理解JavaScript系列(20):《你真懂JavaScript吗?》答案详解
- 第十周项目四 大奖赛计分拓展一
- Android NDK 入门(免Cygwin)
- 抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- CCScrollView使用实例(二) -- 关卡选择界面
- 第十周项目三血型统计