當我們不慎刪除了MySQL中的表數(shù)據(jù)文件后,該如何去恢復呢?下面我們來講解一下步驟:
1. 首先需要停止MySQL服務。
sudo systemctl stop mysql
2. 接下來我們需要找到MySQL數(shù)據(jù)庫的數(shù)據(jù)目錄,這里我們以Ubuntu系統(tǒng)為例,一般數(shù)據(jù)目錄在/var/lib/mysql。
cd /var/lib/mysql/
3. 在數(shù)據(jù)目錄下找到對應數(shù)據(jù)庫的文件夾,進入該文件夾,可以看到一系列的文件,其中frm文件是表結構文件,MYD文件是表數(shù)據(jù)文件,MYI文件是表索引文件。
cd database_name
4. 接下來使用UNDELETE命令來恢復被刪除的數(shù)據(jù)文件。這里需要注意的是,UNDELETE命令只能在MySQL 4.0版本之前的版本中使用,新版本需要使用外部工具來恢復數(shù)據(jù)文件。
myisamchk --verbose --recover --sort_buffer_size=2M /var/lib/mysql/database_name/tablename.MYD
5. 恢復完成后我們需要對數(shù)據(jù)表進行修復,使用REPAIR TABLE命令即可。
mysql -u root -p use database_name; REPAIR TABLE tablename;
6. 最后重新啟動MySQL服務,驗證數(shù)據(jù)是否已經(jīng)恢復成功。
sudo systemctl start mysql
如果以上步驟不能成功恢復數(shù)據(jù),可以嘗試使用更高級的數(shù)據(jù)恢復工具來解決問題。但是在恢復之前,建議先備份MySQL數(shù)據(jù),以免造成數(shù)據(jù)丟失。
上一篇mysql恢復單個表
下一篇mysql恢復到某時間段