mysql 表誤刪恢復有兩種方法:二進制日志恢復:確認開啟二進制日志使用 mysqlbinlog 找出刪除表的二進制日志將二進制日志導入或重新應用數據文件恢復:找到被刪表的 .frm、.ibd 和 .myi 文件創建相同結構的新表停止 mysql 并替換新表的文件為舊文件啟動 mysql 并檢查新表數據
MySQL 表誤刪恢復方法
當 MySQL 表被意外刪除時,有兩種方法可以嘗試恢復:
方法一:二進制日志 (binlog)
-
確認服務器啟用二進制日志記錄。
使用以下命令找出刪除表的二進制日志:
<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>
登錄后復制
其中,NNN 和 MMM 是刪除操作發生前后的二進制日志位置。
- 將找到的二進制日志導入另一個數據庫實例或執行以下命令重新應用:
mysql --binlog=<log_file></log_file>
登錄后復制
方法二:數據文件恢復
-
找到被刪除表的 .frm、.ibd 和 .MYI 文件,它們通常位于 MySQL 數據目錄的 mysql/data/ 子目錄中。
在另一個 MySQL 實例中,創建與被刪除表結構相同的新表。
停止 MySQL 實例并替換新表的 .frm、.ibd 和 .MYI 文件為已刪除表的相應文件。
啟動 MySQL 實例并檢查新表是否包含已刪除表的數據。
注意事項:
以上方法僅適用于表的邏輯刪除,物理刪除無法恢復。
二進制日志恢復需要啟用二進制日志記錄。
數據文件恢復需要確保已刪除表的文件未被覆蓋或修改。