同事在生產上誤刪了數據,也沒有記住那幾條數據的內容,無奈找到後臺要求恢復。一開始想到的就是經過mysql備份文件(frm和ibd)和binlog,可是binlog是記錄sql語句的日誌,可能並不會精確到字段信息上,因此就直接嘗試經過備份文件進行操做。python
安裝MySQL Utilities
https://dev.mysql.com/downloads/utilities/mysql
終端執行:mysqlfrm --diagnostic myfile.frm,獲得表結構,期間可能會出現ImportError: No module named connector的錯誤,強烈建議從官網下載驅動https://dev.mysql.com/downloads/connector/python/sql
CREATE TABLE `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY `PRIMARY` (`id`) ) ENGINE=InnoDB mysql> CREATE mytable (int i); mysql> ALTER TABLE mytable DISCARD TABLESPACE; 而後把ibd的備份文件複製到mysql的數據目錄下,覆蓋以前的ibd文件,mac下mysql數據文件路徑/usr/local/mysql/data mysql> ALTER TABLE r IMPORT TABLESPACE;SHOW WARNINGS;
功成日誌