补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题。

背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit。

详情:

系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样做的,将原来MysqL 文件夹(C:\Windows.old\ProgramData\MysqL\MysqL Server 5.1\data)下的数据库文件夹及".frm"

拷贝到新安装的myql数据库文件夹下面(C:\ProgramData\MysqL\MysqL Server 5.1\data),重启MysqL服务,通过使用navicate for MysqL 工具查看数据库 “xxdatabase”中某张表,结果显示“ MysqL table 'xxtable' doesn`t exist ”,

这个可把我给急坏了,心想这下可玩大了,网站的数据要是出问题了,领导还不把我给烧烤了啊。

于是我就google 啊,百度啊,bing啊,stackoverflow啊等几大常用的搜索全用上了,搜索出来的答案全部都不能解决问题啊,一不留神时间到了该吃饭的点了,唉,心想先吃饱饭,然后在思考更有思路,哈哈。于是回去猛吃了一顿,可把我给撑的啊,废话少说,回来后又找啊找啊,结果还是没能找到合适解决方案,于是认真查看了下MysqL 的data文件加下的文件,发现了WIN-4FA0WLP5F0V.err和WIN-4FA0WLP5F0V.pid 两个文件,于是看了具体的错误内容如下

120622 12:00:36 [Note] Plugin 'FEDERATED' is disabled.

120622 12:00:37  InnoDB: Initializing buffer pool,size = 300.0M

120622 12:00:37  InnoDB: Completed initialization of buffer pool

InnoDB: The first specified data file .\ibdata1 did not exist:

InnoDB: a new database to be created!

120622 12:00:37  InnoDB: Setting file .\ibdata1 size to 10 MB

InnoDB: Database physically writes the file full: wait...

120622 12:00:37  InnoDB: Log file .\ib_logfile0 did not exist: new to be created

InnoDB: Setting log file .\ib_logfile0 size to 60 MB

InnoDB: Database physically writes the file full: wait...

120622 12:00:37  InnoDB: Log file .\ib_logfile1 did not exist: new to be created

InnoDB: Setting log file .\ib_logfile1 size to 60 MB

InnoDB: Database physically writes the file full: wait...

InnoDB: Doublewrite buffer not found: creating new

InnoDB: Doublewrite buffer created

InnoDB: Creating foreign key constraint system tables

InnoDB: Foreign key constraint system tables created

120622 12:00:39  InnoDB: Started; log sequence number 0 0

120622 12:00:39 [Note] Event Scheduler: Loaded 0 events

120622 12:00:39 [Note] D:\Program Files\MysqL\MysqL Server 5.1\bin\MysqLd: ready for connections.

Version: '5.1.55-community'  socket: ''  port: 3306  MysqL Community Server (GPL)

120622 12:02:49 [ERROR] Cannot find or open table magento/catalog_product_bundle_selection_price from

the internal data dictionary of InnoDB though the .frm file for the

table exists. Maybe you have deleted and recreated InnoDB data

files but have forgotten to delete the corresponding .frm files

of InnoDB tables,or you have moved .frm files to another database?

or,the table contains indexes that this version of the engine

doesn't support.

See http://dev.MysqL.com/doc/refman/5.1/en/innodb-troubleshooting.html

how you can resolve the problem.

感觉应该是数据库引擎配置的问题,于是搜索了有关InnoDB 和MyISAM的相关资料,如下这段内容很有意义

以表”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群:1065694478(已满)交流2群:163560250

mysql data文件恢复_mysql 通过data文件下来恢复数据相关推荐

  1. mysql ibd文件还原_Mysql 通过ibd文件恢复数据

    由于未关闭mysql服务就将服务器重启,导致服务器无法重启,使用fsck修复磁盘后启动服务器后,发现mysql数据文件损坏和丢失,但还存在idb文件. 数据库版本:5.7.20 什么是idb文件 如何 ...

  2. linux mysql 误删系统文件恢复_MySQL误删物理文件的恢复(Linux)

    以前拜读过一位Oracle大大的文章,结果自己在测试环境也遇到了,顺手记下来 Oracle大大的文章链接http://blog.itpub.net/17203031/viewspace-1077770 ...

  3. mysql官网下载后解压是文件夹_mysql解压文件安装

    一直以来都习惯了使用MySQL安装文件(.exe),今天下载了一个.zip版本的MySQL,安装过程中遇到了一些问题,如下: 1.在MySQL官网上(http://dev.mysql.com/down ...

  4. mysql数据库整体备份和恢复_MySQL 数据库的备份和恢复

    MySQL 数据库的备份和恢复 基本知识>>>>>>> 逻辑备份: 1.mysqldump(数据导出工具) mysqldump options db_name ...

  5. mysql异机还原_MySQL innobackupex全量备份恢复

    转自 http://blog.itpub.net/27099995/viewspace-1295099/ 先简单介绍一下这个工具:innobackupex innobackupex比xtarbacku ...

  6. 升级mysql服务器二进制备份_MySQL二进制日志备份和恢复详解

    基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句. 作用: 1.二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二 ...

  7. mysql二进制日志重置_MySQL二进制日志备份和恢复详解

    原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...

  8. mysql数据库实验任务二_MySQL数据库实验:任务二 表数据的插入、修改及删除

    任务二 表数据的插入.修改及删除 @[toc] 班级 姓名 软件工程16-9班 洪燕妮 [实训目的与要求] 1.利用MySQL命令行窗口进行增.删.改数据操作: 2.利用界面工具进行增.删.改数据操作 ...

  9. mysql 后10条_Mysql 保留最新的10条数据

    Mysql每天执行计划,保留最新的10条数据,其余的删除 1.Mysql 保留最新的10条数据 sql语句: DELETE tb FROM tbname AS tb,( SELECT id FROM ...

最新文章

  1. MySQL数据库修改表结构
  2. php HASHTABLE 实现
  3. 跑了4个实验,实战讲解 MySQL的行锁、间隙锁...​
  4. xps数据怎么导出为txt_使用ExportAsFixedFormat方法将数据导出到PDF或XPS.docx
  5. 使用Python绘制热图的库
  6. Ubuntu shutdown 关机、重启、注销 命令 常用实例
  7. Linux中的 硬链接ln和软连接ln -s
  8. c语言迷宫问题输出坐标,C语言数据结构之迷宫求解问题
  9. 美团外卖批量投放智能安全头盔:骑手可语音处理订单
  10. mysql 8 nosql_MySQL8.0-NoSQL和SQL的对比及MySQL的优势
  11. 生产常见问题及解决方案与深度分析
  12. 优雅地减少redux请求样板代码
  13. python matplotlib打开相机
  14. 计算机应用技术和cad,计算机图形技术与CAD
  15. c语言结构体的流程图怎么画,结构流程图不会画?手把手教你学会!
  16. RabbitMQ:四种ExChange用法
  17. PS学习-曝光与色彩处理(二)--纯净自然的高调照片
  18. 微信公众号与小程序对接文档
  19. java 对战平台-魔兽版
  20. 在BuildConfig中添加自定义字段

热门文章

  1. 怎么接受对方tp_Sorry该怎么回应?难道是You are welcome?
  2. 物联网平台企业版:设备接入实例节点开发实战——实践类
  3. 新目标视听说教程1-4
  4. 阅读论文的方法和技巧
  5. java 打印byte数组内容_java中打印byte数组
  6. Laplacian Loss
  7. gradle和groovy
  8. 必看!阿里成功背后的商业秘诀:前线团队尽量小,中台支撑尽量大
  9. Android UID的分配、查看及相关知识
  10. 机器学习-学习曲线-sklearn