mysql 表誤刪恢復(fù)有兩種方法:二進(jìn)制日志恢復(fù):確認(rèn)開啟二進(jìn)制日志使用 mysqlbinlog 找出刪除表的二進(jìn)制日志將二進(jìn)制日志導(dǎo)入或重新應(yīng)用數(shù)據(jù)文件恢復(fù):找到被刪表的 .frm、.ibd 和 .myi 文件創(chuàng)建相同結(jié)構(gòu)的新表停止 mysql 并替換新表的文件為舊文件啟動(dòng) mysql 并檢查新表數(shù)據(jù)
MySQL 表誤刪恢復(fù)方法
當(dāng) MySQL 表被意外刪除時(shí),有兩種方法可以嘗試恢復(fù):
方法一:二進(jìn)制日志 (binlog)
-
確認(rèn)服務(wù)器啟用二進(jìn)制日志記錄。
使用以下命令找出刪除表的二進(jìn)制日志:
<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>binlog --start-position=NNN --stop-position=MMM --database=<database_name><log_file></log_file></database_name>
登錄后復(fù)制
其中,NNN 和 MMM 是刪除操作發(fā)生前后的二進(jìn)制日志位置。
- 將找到的二進(jìn)制日志導(dǎo)入另一個(gè)數(shù)據(jù)庫實(shí)例或執(zhí)行以下命令重新應(yīng)用:
mysql --binlog=<log_file></log_file>
登錄后復(fù)制
方法二:數(shù)據(jù)文件恢復(fù)
-
找到被刪除表的 .frm、.ibd 和 .MYI 文件,它們通常位于 MySQL 數(shù)據(jù)目錄的 mysql/data/ 子目錄中。
在另一個(gè) MySQL 實(shí)例中,創(chuàng)建與被刪除表結(jié)構(gòu)相同的新表。
停止 MySQL 實(shí)例并替換新表的 .frm、.ibd 和 .MYI 文件為已刪除表的相應(yīng)文件。
啟動(dòng) MySQL 實(shí)例并檢查新表是否包含已刪除表的數(shù)據(jù)。
注意事項(xiàng):
以上方法僅適用于表的邏輯刪除,物理刪除無法恢復(fù)。
二進(jìn)制日志恢復(fù)需要啟用二進(jìn)制日志記錄。
數(shù)據(jù)文件恢復(fù)需要確保已刪除表的文件未被覆蓋或修改。