Mysql從刪庫到跑路
來自專欄 python
1、開啟bin-log
打開mysql配置文件 /etc/mysql/my.cnf(這個位置不是固定的,根據你安裝的mysql目錄去找)
放開log_bin這一行log_bin = /var/log/mysql/mysql-bin.log
隨後重啟mysql 即執行
/etc/init.d/mysql restart
進入資料庫,查看log_bin開啟狀態
show variables like %log_bin%;
圖片
可以看到 log_bin的值是ON就表示已經開啟了log-bin
再到/var/log/mysql/目錄下查看,就已經多了兩個log-bin日誌文件mysql-bin.000001
mysql-bin.index
為什麼是兩個呢?
我們打開mysql-bin.index文件後看到只有一行數據:/var/log/mysql/mysql-bin.000001
什麼意思呢?也即是mysql-bin.index這個文件最終指向了mysql-bin.000001文件。
2、創建資料庫表並插入數據
DROP TABLE IF EXISTS `xoxo`;CREATE TABLE `xoxo` ( `stuname` varchar(10) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `xoxo` VALUES (tom);INSERT INTO `xoxo` VALUES (lilei);INSERT INTO `xoxo` VALUES (jimGreen);
3、刪庫跑路
drop table xoxo;
如果此時沒有對資料庫做備份,且沒有開啟binlog,刪完庫基本就只能坐那哭了。不哭也行,那就是——撒丫子趕緊跑路~
?
撒丫子跑鴨
4、恢複數據:
先查看應該從哪裡恢復。
執行命令
/usr/bin/mysqlbinlog --no-defaults mysql-bin.000001 |more
我們可以看到每一次針對資料庫的操作節點。
如# at 833
# at 934
# at 961
我們注意到在刪除資料庫表的下一個節點是961,那我們恢複數據時的終止節點也需要選這個
恢復:
/usr/bin/mysqlbinlog --no-defaults mysql-bin.000001 --stop-position=961|mysql -uroot -pfulianzhuren
再進入資料庫看看,數據全部都恢復啦。
掃碼關注微信公眾號,查看更多「猛料」
http://weixin.qq.com/r/nT9pcYrEG9dkrc4S92qP (二維碼自動識別)
推薦閱讀:
※如何只通過藍牙建立互動式Shell
※香儂說 | 香儂科技獨家對話AAAI、ACM、ACL三會會士UT Austin大學計算機系教授Raymond J. Mooney
※Win7系統32位與64位的區別,該如何選擇?
※一個計科小白的每日編程打卡2018.7.20
※經典小程序源碼及其下載地址