mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法
第一步:保證mysql已經(jīng)開啟binlog
show variables like '%log_bin%'; log_bin 為 on是開啟。
第二步:進(jìn)入binlog文件目錄,找到二進(jìn)制日志文件
mysql> show binary logs; #獲取binlog文件列表 mysql> show master status; #查看當(dāng)前正在寫入的binlog文件 mysql> reset master; 重置binlog
第三步: 通過mysqlbinlog工具命令查看數(shù)據(jù)庫增刪改查記錄(必須切換到mysqlbinlog目錄才有效)或者直接指定binlog
例子1:查詢2021-3-12 14:00:00到2021-3-12 14:03:00 數(shù)據(jù)庫為 g_xinxiangshop的操作日志,輸入如下命令將數(shù)據(jù)寫入到一個(gè)備用的txt文件中
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt
例子2:查詢2021-3-12 14:00:00到2021-3-12 14:03:00 數(shù)據(jù)庫為 g_xinxiangshop的操作日志,并且過濾出 只包括 g_user表數(shù)據(jù)的操作記錄 ,輸入如下命令將數(shù)據(jù)寫入到一個(gè)備用的txt文件中
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 | grep g_user > /tmp/binlog.txt
例子3:查詢2021-3-15 15:25:00到2021-3-15 15:35:00 數(shù)據(jù)庫為 g_shoptest 的操作日志,并輸出到屏幕上
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_shoptest --start-datetime=“2021-3-15 15:25:00” --stop-datetime=“2021-3-15 15:35:00” /data/mysql/mysql-bin.000001 |more
圖片和例1、例2內(nèi)容一樣 看到了truncate操作 和記錄點(diǎn) 就可以做恢復(fù)操作了!
第四步:測(cè)試?yán)胋in_log恢復(fù)數(shù)據(jù)
登錄mysql
測(cè)試:
1、 reset master; 重置binlog并重新生成記錄日志
2、 測(cè)試某個(gè)表 插入一條數(shù)據(jù) 然后不小心刪除了。
3、 查看bin-log 命令:show binlog events in ‘mysql-bin.000001';
如上圖
我們看到刪除點(diǎn)在928到 1294 ;之前的新增的數(shù)據(jù) 在154到520
/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 154 --stop-position 520 | mysql -uroot -p g_shoptest
執(zhí)行完畢之后 去看看刪除那條數(shù)據(jù)吧 又回來了
binlog命令
1.最長用的就是回復(fù)指定數(shù)據(jù)端的數(shù)據(jù)了,可以直接恢復(fù)到數(shù)據(jù)庫中:
mysqlbinlog --start-date="2021-3-12 14:00:00" --stop-date="2021-3-12 14:03:00" mysql_bin.000001 |mysql -uroot -p123456
2.指定開始\結(jié)束位置,從上面的查看產(chǎn)生的binary log我們可以知道某個(gè)log的開始到結(jié)束的位置,我們可以在恢復(fù)的過程中指定回復(fù)從A位置到B位置的log.需要用下面兩個(gè)參數(shù)來指定:
- --start-positon="50" //指定從50位置開始
- --stop-postion="100"http://指定到100位置結(jié)束
/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 7903538 --stop-position 7904498|mysql -uroot -p123456
**常見錯(cuò)誤 ERROR: Error in Log_event::read_log_event(): ‘Found invalid event in binary log', data_len: 31, event_type: 35
*問題為mysqlbinlog版本所導(dǎo)致
查看當(dāng)前os使用的mysqlbinlog
shell> which mysqlbinlog /usr/bin/mysqlbinlog
查看mysql當(dāng)前使用的mysqlbinlog
±--------------±------------------+ | Variable_name | Value | ±--------------±------------------+ | basedir | /usr/local/mysql/ | ±--------------±------------------+
mysql> show variables like ‘basedir';
對(duì)比兩個(gè)版本
shell> /usr/bin/mysqlbinlog --version shell> /usr/local/mysql/bin/mysqlbinlog --version
解決此問題指定mysqlbinlog路徑即可
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt
到此這篇關(guān)于mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法的文章就介紹到這了,更多相關(guān)mysql binlog 恢復(fù)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL通過binlog實(shí)現(xiàn)恢復(fù)數(shù)據(jù)
- Python MySQL如何通過Binlog獲取變更記錄恢復(fù)數(shù)據(jù)
- MySQL通過日志恢復(fù)數(shù)據(jù)的操作步驟
- MySQL通過ibd文件恢復(fù)數(shù)據(jù)的操作過程
- MySQL開啟配置binlog及通過binlog恢復(fù)數(shù)據(jù)步驟詳析
- mysql binlog如何恢復(fù)數(shù)據(jù)到某一時(shí)刻
- MySQL誤刪后使用binlog恢復(fù)數(shù)據(jù)的實(shí)現(xiàn)方法
- mysql數(shù)據(jù)損壞,如何通過ibd和frm文件批量恢復(fù)數(shù)據(jù)庫數(shù)據(jù)
- Mysql如何通過ibd文件恢復(fù)數(shù)據(jù)
- mysql如何根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表
- 一步步教你如何使用mysql?binlog恢復(fù)數(shù)據(jù)
- MySql恢復(fù)數(shù)據(jù)方法梳理講解
- Mysql通過ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟
- MySQL數(shù)據(jù)庫通過Binlog恢復(fù)數(shù)據(jù)的詳細(xì)步驟
- Mysql如何通過binlog日志恢復(fù)數(shù)據(jù)詳解
- MySQL通過binlog恢復(fù)數(shù)據(jù)
- mysql8.0無備份通過idb文件恢復(fù)數(shù)據(jù)的方法、idb文件修復(fù)和tablespace?id不一致處理
相關(guān)文章
SQLyog的下載、安裝、破解、配置教程(MySQL可視化工具安裝)
SQLyog是一款MySQL可視化工具,他可以將部分SQL操作通過圖形化界面操作來完成,方便開發(fā)者更好的進(jìn)行開發(fā)及數(shù)據(jù)庫設(shè)計(jì),這篇文章主要介紹了SQLyog的下載、安裝、破解、配置(MySQL可視化工具安裝),需要的朋友可以參考下2022-09-09用SQL實(shí)現(xiàn)統(tǒng)計(jì)報(bào)表中的"小計(jì)"與"合計(jì)"的方法詳解
本篇文章是對(duì)使用SQL實(shí)現(xiàn)統(tǒng)計(jì)報(bào)表中的"小計(jì)"與"合計(jì)"的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06簡(jiǎn)單了解標(biāo)準(zhǔn)SQL的update語句三種用法
這篇文章主要介紹了簡(jiǎn)單了解標(biāo)準(zhǔn)SQL的update語句三種用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06