【技術(shù)分享】MySQL數(shù)據(jù)庫備份文件的恢復(fù)與查看
瀏覽量: 次 發(fā)布日期:2023-08-17 21:49:05
【技術(shù)分享】MySQL數(shù)據(jù)庫備份文件的恢復(fù)與查看
更新關(guān)鍵字:三星高版本、微信恢復(fù)、支付寶賬單恢復(fù)、新增應(yīng)用……當(dāng)前,絕大多數(shù)網(wǎng)站資源和數(shù)據(jù)庫資源都部署在服務(wù)器上,對服務(wù)器進(jìn)行取證有時會遇到固定下的數(shù)據(jù)庫文件不能在取證電腦上直接查看的問題,為此需要將數(shù)據(jù)庫備份文件在本地電腦上進(jìn)行恢復(fù)查看。本文以常見的MySQL數(shù)據(jù)庫為例,詳細(xì)介紹如何將數(shù)據(jù)庫備份文件導(dǎo)入到本地電腦上進(jìn)行數(shù)據(jù)恢復(fù)與查看。
1、環(huán)境準(zhǔn)備
在本機(jī)查看MySQL數(shù)據(jù)庫備份文件,首先需要啟動MySQL服務(wù),這就要求取證電腦需安裝MySQL數(shù)據(jù)庫及相應(yīng)的連接工具。
1.1 MySQL的環(huán)境要求
電腦系統(tǒng)要求:MySQL 數(shù)據(jù)庫支持在多種操作系統(tǒng)上運行,包括Windows、Linux、MacOS 和 Solaris 等。Windows提供了可視化的圖形界面并支持相關(guān)的數(shù)據(jù)庫連接工具,本文采用的是 Windows 系統(tǒng)安裝并配置 MySQL。
程序版本要求:目前,MySQL的最新版本是8.0,增加了許多新特性,但是新版本的兼容性與穩(wěn)定性不夠好,在此選擇使用更穩(wěn)定可靠的MySQL 5.7為例進(jìn)行操作演示。
1.2 數(shù)據(jù)庫連接工具的準(zhǔn)備目前市面上有許多數(shù)據(jù)庫連接工具,如Navicat、Dbeaver、DataGrip、phpMyAdmin等,每種工具都有自己的優(yōu)缺點,可以根據(jù)用戶操作習(xí)慣加以選擇,本文以最常用的Navicat工具為例來說明MySQL數(shù)據(jù)庫的操作。
2、備份文件導(dǎo)入本地數(shù)據(jù)庫不同環(huán)境下MySQL數(shù)據(jù)庫的備份文件格式會存在差異,本文主要介紹幾種常見的備份文件導(dǎo)入本地數(shù)據(jù)庫進(jìn)行查看的方法。
2.1 .nb3類型文件導(dǎo)入
.nb3是MySQL數(shù)據(jù)庫中的一種數(shù)據(jù)文件格式,通過存儲引擎MyISAM進(jìn)行創(chuàng)建和管理,此格式文件可以壓縮數(shù)據(jù),從而減少數(shù)據(jù)在磁盤中的占用空間。.nb3類型文件比較少見,通常是由Navicat連接工具導(dǎo)出的整個數(shù)據(jù)庫備份文件。此類型文件導(dǎo)入數(shù)據(jù)庫較簡單,由于是連接工具導(dǎo)出的備份文件,所以只能通過連接工具導(dǎo)入數(shù)據(jù)庫。在Navicat中創(chuàng)建一個空數(shù)據(jù)庫,右鍵點擊備份功能,選擇還原備份,路徑選擇到導(dǎo)出的.nb3格式備份文件,點擊開始,等待還原完成即可查看數(shù)據(jù),如下圖所示。
2.2 .sql類型文件導(dǎo)入
.sql類型文件也稱為SQL腳本,通常由一系列SQL語句組成,可使用任何文本編輯器進(jìn)行編輯和查看,一般是通過命令行工具mysqldump或Navicat等數(shù)據(jù)庫連接工具導(dǎo)出的備份文件。此類型文件導(dǎo)入數(shù)據(jù)庫的操作比較簡單,主要有兩種方法。
第一種方法是使用系統(tǒng)自帶的命令提示符功能導(dǎo)入。打開命令提示符界面,輸入 “mysql -u 用戶名 -p”,再輸入MySQL的登錄密碼后即可連接到MySQL數(shù)據(jù)庫;使用 “use 數(shù)據(jù)庫名;”切換到想要導(dǎo)入的的數(shù)據(jù)庫,如下所示。
然后,使用 “source 備份文件地址”,當(dāng)出現(xiàn)Query OK時表示導(dǎo)入數(shù)據(jù)成功,如下所示。
第二種方法是使用數(shù)據(jù)庫連接工具進(jìn)行導(dǎo)入。打開安裝的數(shù)據(jù)庫連接工具Navicat,新建一個MySQL連接并填寫相關(guān)信息,如下所示。
找到想要導(dǎo)入的數(shù)據(jù)庫,右鍵庫名選擇運行SQL文件,找到所備份的.sql類型文件,點擊開始即可導(dǎo)入數(shù)據(jù),如下所示。
提示框出現(xiàn)Finished successfully時表示數(shù)據(jù)導(dǎo)入成功。點開左側(cè)的表選項即可看到導(dǎo)入到本地的所有數(shù)據(jù),如下所示。
2.3 .frm和.ibd類型文件導(dǎo)入
如果MySQL創(chuàng)建表時選擇不同的存儲引擎,生成的數(shù)據(jù)文件也會不同。InnoDB生成.frm和.ibd兩個文件,其中.frm文件用于存儲表結(jié)構(gòu),.ibd文件用于存儲表數(shù)據(jù)。MyISAM生成.frm、.myd還有.myi三個文件,.frm文件也是用于存儲表結(jié)構(gòu),.myd用于存儲數(shù)據(jù),.myi用于存儲索引文件。MyISAM生成的3個文件直接拖入創(chuàng)建的新數(shù)據(jù)庫文件路徑中即可查看數(shù)據(jù),而InnoDB引擎生成的2個文件復(fù)制到新數(shù)據(jù)庫目錄中找不到表結(jié)構(gòu)和數(shù)據(jù)。此時,需要對表結(jié)構(gòu)進(jìn)行恢復(fù)后再把數(shù)據(jù)文件導(dǎo)入表中,具體操作如下:
首先,找到需要恢復(fù)表結(jié)構(gòu)的.frm文件位置,在此位置打開命令提示符界面,使用“mysqlfrm --diagnostic xx.frm(xx為表名)”命令恢復(fù)此表的創(chuàng)表語句,然后復(fù)制創(chuàng)表語句,如下所示。
在Navicat中創(chuàng)建的一個新的數(shù)據(jù)庫中執(zhí)行創(chuàng)表語句,用于恢復(fù)表結(jié)構(gòu)并創(chuàng)建新的表,如下所示。需要注意的是,當(dāng)執(zhí)行創(chuàng)表語句時需注意格式問題,刪除多余的語句才能完整執(zhí)行。
執(zhí)行完畢后就可以看到整個表的表結(jié)構(gòu)已經(jīng)恢復(fù)成功,但是表中還沒有數(shù)據(jù),接下來需要把表數(shù)據(jù)導(dǎo)入到表中,如下所示。
在命令提示符界面使用“use 庫名”進(jìn)入到新創(chuàng)建的庫中,然后執(zhí)行“alter table xx DISCARD TABLESPACE;”命令丟棄新庫中xx表的表空間,目的是為了導(dǎo)入新的數(shù)據(jù)到表中。執(zhí)行完成后把.ibd文件復(fù)制到新庫的xx表中,mysql本地數(shù)據(jù)存儲的文件夾默認(rèn)存放在C:\ProgramData\MySQL\Mysql server 5.7\Data中。復(fù)制完成后再返回命令提示符界面執(zhí)行“ alter table xx IMPORT TABLESPACE;”把導(dǎo)入的數(shù)據(jù)引入到xx表的表空間中,如下所示。此過程受數(shù)據(jù)量大小的影響可能耗時較長,等待數(shù)據(jù)導(dǎo)入即可。
數(shù)據(jù)導(dǎo)入成功后,在Navicat中就可以看到已經(jīng)完整恢復(fù)出整個表的結(jié)構(gòu)及數(shù)據(jù),如下所示。
結(jié) 語
服務(wù)器取證必不可少的操作之一是數(shù)據(jù)庫固定,由于不同案件使用的數(shù)據(jù)庫環(huán)境不同,備份文件的格式也會存在差異。本文以MySQL數(shù)據(jù)庫為例,向讀者簡要分享了數(shù)據(jù)庫固定在不同類型備份文件的情況下如何在本地電腦上進(jìn)行導(dǎo)入查看,為取證人員梳理了備份文件導(dǎo)入數(shù)據(jù)庫的操作流程,為服務(wù)器取證中數(shù)據(jù)庫證據(jù)固定提供了一種新的思路。
南京兆柏數(shù)據(jù)恢復(fù)中心 南京兆柏數(shù)據(jù)恢復(fù)中心