MySQL(二)BinLog恢復資料

2021-08-11 15:43:33 字數 1692 閱讀 1232

有時,我們誤刪了mysql資料庫的一些資料,肯定希望能夠恢復我們誤刪的資料,這是可以解決的。有乙個解決的方案是使用mysql的二進位制日誌,也是我們經常說的binlog,不過前提是,在啟動mysql時已經啟用binlog功能。

檢視binlog功能是否啟用:

看到第一行的variable_name為log_bin,對應的value是on,即是啟用,off則是停用。

binlog功能可以通過配置或者命令來啟用。

1.配置檔案/etc/my.cnf

[mysqld]

log-bin=mysql-bin

修改了my.cnf檔案,需要重啟mysql後檔案內容才生效。

2.命令

停用

set sql_log_bin=0
啟用

set sql_log_bin=1
binlog的相關檔案,可以在mysql的data目錄看到

-rw-rw----. 1 mysql mysql  68k 12月  1 12:01 mysql-bin.000001

-rw-rw----. 1 mysql mysql 1.4m 12月 1 12:01 mysql-bin.000002

-rw-rw----. 1 mysql mysql 143 12月 1 13:08 mysql-bin.000003

-rw-rw----. 1 mysql mysql 1.6k 12月 1 16:57 mysql-bin.000004

-rw-rw----. 1 mysql mysql 76 12月 1 13:27 mysql-bin.index

binlog是二進位制形式儲存的,如果需要看裡面的內容,可以通過命令檢視。

檢視日誌的相關資訊

mysql> show binlog events in 'mysql-bin.000004'\g
mysqlbinlog恢復資料成sql檔案

mysqlbinlog mysql-bin.000004 > mysql-bin.000004.sql
根據時間點恢復資料

[root@localhost data]# ../bin/mysqlbinlog --start-datetime="2017-12-01 16:45:00" --stop-datetime="2017-12-01 16:50:00" mysql-bin.000004 | ../bin/mysql -uroot -p

enter password: *****

根據偏移量恢復資料

[root@localhost data]# ../bin/mysqlbinlog --start-position="50" --stop-position="100" mysql-bin.000004 | ../bin/mysql -uroot -p

enter password: *****

官方對binlog的說明:

MySQL 通過 binlog 恢復資料

通過了解 binlog 日誌的相關配置,簡單掌握通過 binlog 對資料庫進行資料恢復操作 任何成熟軟體都會有一套成熟的日誌系統,當軟體出現問題時,這些日誌就是查詢問題 的寶庫。同樣,mysql 也不例外,也會有一系列日誌記錄 mysql 的執行狀態。mysql 主要有以下幾種日誌 這些日誌均需要...

MySQL通過bin log恢復資料

binlog是server層實現的二進位制日誌,他會記錄我們的crud操作。因此如果我們誤刪了資料庫,我們可以通過binlog來進行恢復。一 首先,我們需要開啟mysql的binlog功能。binlog預設是關閉的,需要手動開啟 通過以下命令檢視binlog是否開啟 show variables l...

binlog恢復資料

記一次誤刪恢復資料 通過binlog日誌檔案生成時間和誤操作刪除資料的時間對比,分析出生成到哪個檔案中 兩種恢復方式 1 通過時間段 usr local mysql bin mysqlbinlog start datetime 2019 10 11 19 00 00 stop datetime 20...