記一次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)
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來操作一下,測試時成功了一次,后面就沒有成功了,具體原因暫時不明確!
(更新於2014/10/18)以上方法不適合InnoDB,InnoDB可以嘗試使用innodb_force_recovery來操作一下,測試時成功了一次,后面就沒有成功了,具體原因暫時不明確!
本文原創博客地址:http://www.cnblogs.com/unofficial 官網地址: www.pushself.com