jjdlnr 2016-12-24
记一次mysql中的data文件操作经历
想拿到一个项目的最新的数据,做功能升级使用,备份一份数据同时也作为本地测试数据,文件有些大,我直接通过远程的phpmyadmin程序导出,不能愉快的玩耍,直接联系了IDC的同事帮忙导一份sql文件出来一下,结果那哥们没得直接扔给了我data文件,这让我如何是好,这个问题我没遇见过啊。处于面子问题,又不好意思再让他重新发我一份sql文件,只好硬着头皮尝试一下如何恢复成数据。
环境申明
以下操作都是针对windows下的操作
Data文件分析
*.frm是描述了表的结构,*.MYD保存了表的数据记录,*.MYI则是表的索引
MYSQL数据引擎与字符查看命令(回忆一下操作)
1.查看数据库编码:
show variables like 'character%';
2.查看数据库支持的引擎和默认数据库引擎代码:
show engines;
3.查看当前数据库默认的引擎:
show variables like '%storage_engine%';
4.修改数据库引擎的方式:
找到数据库的配置文件my.ini,查找“default-storage-engine”,这个指定就是我当前默认的数据库引擎(default-storage-engine=INNODB)
如何恢复data文件为数据
在my.ini文件中,查找“datadir”,按照路径打开,这里就是你本地现在的所有的数据库的名称,找到你要恢复数据的库名,如果没有需要创建一个数据库,然后点击对应的文件夹,将之前的data文件拷贝进去。重启一下mysql服务,再去看看数据库里面有没有数据了呢?
(更新于2014/10/18)以上方法不适合InnoDB,InnoDB可以尝试使用innodb_force_recovery来操作一下,测试时成功了一次,后面就没有成功了,具体原因暂时不明确!