Mysql從刪庫到跑路

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

再進入資料庫看看,數據全部都恢復啦。

破涕為笑.gif

掃碼關注微信公眾號,查看更多「猛料」

weixin.qq.com/r/nT9pcYr (二維碼自動識別)


推薦閱讀:

如何只通過藍牙建立互動式Shell
香儂說 | 香儂科技獨家對話AAAI、ACM、ACL三會會士UT Austin大學計算機系教授Raymond J. Mooney
Win7系統32位與64位的區別,該如何選擇?
一個計科小白的每日編程打卡2018.7.20
經典小程序源碼及其下載地址

TAG:科技 | 計算機科學 |