不小心drop掉資料庫怎麼辦
不小心drop掉資料庫怎麼半.md 不小心刪掉了mysql資料庫怎麼辦 前情提要 不小心把資料庫給drop掉了、把table刪掉了。 我的情況是把database整個drop掉、沒有開bin_log紀錄。 因為資料庫版本是5.6,預設 innodb_file_per_table=off ,因此資料在被drop掉後,紀錄仍然會在ibdata1裡面。 當下處置和準備 1. 趕緊將資料庫服務整個關掉,要記得把所有mysql的process砍掉。 sudo service stop mysqld P.S.最好再用 ps aux |grep "mysql" 檢查一下 2. 把mysql資料夾內的 ibdata1 檔案抓出來。 3. 準備一下原本create 要恢復的 table的sql 我因為是使用django,所以能夠用migrate重現原本的table 因此,只要在使用 show create table tableName; 就可以拿到create的sql了 P.S. 如果沒有辦法重現的話,twinDB的恢復工具,裡面有sys_parser工具,可以用ibdata1的資料來產生 4. clone 恢復工具 git clone git@github.com:twindb/undrop-for-innodb.git 5. 產生恢復工具(需要gcc、bison、flex、make) 在clone下來的資料夾內編工具 make P.S. 假如需要sys_parser工具的話,需要再額外去編這個工具(需要對應的mysql dev package,可以用 yum provides "*/mysql_config" ,來show出可以下載的dev package) 編譯指令 gcc ` mysql_config --cflags ` ` mysql_config --libs ` -o sys_parser sys_parser.c mysql_config 是mysql的設定檔(通常就叫做mysql_config)。 開始修復 接下來的動作,都是在clone下來的工具的資料夾下操作 手動查的流程 1. 使用s...