主頁 > 知識(shí)庫 > mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法

mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法

熱門標(biāo)簽:呂梁外呼系統(tǒng) 北京金倫外呼系統(tǒng) html地圖標(biāo)注并導(dǎo)航 400電話辦理服務(wù)價(jià)格最實(shí)惠 南太平洋地圖標(biāo)注 大豐地圖標(biāo)注app 催天下外呼系統(tǒng) 400電話變更申請(qǐng) 武漢電銷機(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ù)操作了!

第四步:測試?yán)胋in_log恢復(fù)數(shù)據(jù)

登錄mysql
測試

1、 reset master; 重置binlog并重新生成記錄日志

2、 測試某個(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數(shù)據(jù)庫恢復(fù)(使用mysqlbinlog命令)
  • MySQL中的binlog相關(guān)命令和恢復(fù)技巧
  • Mysql的Binlog數(shù)據(jù)恢復(fù):不小心刪除數(shù)據(jù)庫詳解
  • mysql如何利用binlog進(jìn)行數(shù)據(jù)恢復(fù)詳解
  • 教你自動(dòng)恢復(fù)MySQL數(shù)據(jù)庫的日志文件(binlog)
  • Linux上通過binlog文件恢復(fù)mysql數(shù)據(jù)庫詳細(xì)步驟
  • 解說mysql之binlog日志以及利用binlog日志恢復(fù)數(shù)據(jù)的方法
  • MySQL使用mysqldump+binlog完整恢復(fù)被刪除的數(shù)據(jù)庫原理解析
  • MySQL使用binlog日志做數(shù)據(jù)恢復(fù)的實(shí)現(xiàn)
  • 如何利用MySQL的binlog恢復(fù)誤刪數(shù)據(jù)庫詳解

標(biāo)簽:迪慶 徐州 無錫 西寧 龍巖 麗水 南充 自貢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法》,本文關(guān)鍵詞  mysql5.7,使用,binlog,恢復(fù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章