msyql資料庫資料通過二進位制日誌恢復

2021-08-14 09:33:29 字數 2254 閱讀 3254

1、mysql建立資料庫指定編碼

create database test default character set utf8 collate utf8_general_ci;

2、在mysql資料庫中我們可以開啟一些日誌,來記錄mysql資料庫的操作資訊。

mysql日誌主要分4類:

(1)二進位制日誌:記錄所有更改資料的語句,可以用於資料的恢復。

(2)錯誤日誌:記錄mysql服務的啟動、執行或停止服務時出現的問題。

(3)查詢日誌:記錄建立的客戶端連線和執行的語句。

(4)慢查詢語句:記錄所有執行時間超過long_query_time的所有查詢或者沒使用索引的查詢。

這裡我們主要學習二進位制日誌,為什麼會有二進位制日誌?因為它可以最大可能地幫我們恢復資料庫的一些資料,比如突然斷電了、一不小心刪錯了資料,然而我們可以通過二進位制日誌可以恢復。

二進位制日誌預設是沒有開啟的,這就需要我們去開啟。

1、設定啟動二進位制日誌:

找到my.ini配置,在[mysqld]組下面新增以下內容:

log-bin="f://logs/mydb_log"

expire_logs_day=2

max_binlog_size=100m

log-bin:二進位制日誌存放的位置。

expire_logs_day:二進位制日誌自動刪除的天數,預設是0——不自動刪除。

max_binlog_size:乙個二進位制日誌檔案的大小限制,超過了這個值就會開啟新的日誌檔案。範圍:大於4096byte但小於1gb預設是1g。

2、重啟mysql服務就可以了。

3、為了驗證一下是否成功開啟二進位制日誌,看下圖操作,如果log_bin的值為on說明開啟成功。

4、模擬恢復資料。

在我的mysql資料庫中建立一張my表:

往裡面插入兩條資料到my表中,資料如下:

現在呢,我把這張my表刪掉,然後通過二進位制日誌來恢復資料。

恢復資料操作:

檢視二進位制日誌檔案:

規則:mysqlbinlog 日誌存放位置

輸入:mysqlbinlog f://logs/mydb_log.000001

在剛才列印出來的日誌資訊中我們可以找到我們之前建立my表的資訊:

還有我們剛插入的資料資訊:

那麼現在我們可以根據這些資訊來把資料恢復到之前某個狀態。

規則:mysqlbinlog [option] filename |mysql –uuser –ppassword。

option:可選項,--start-date、--stop-date、--start-position、--end-position分別表示恢復資料庫的開始時間、結束時間、開始位置、結束位置。

輸入命令:

然後我們再去資料庫中檢視my表,發現有了,而且還有資料了。到此說明資料成功恢復了。

資料庫二進位制日誌

二進位制日誌記錄三種格式 基於 語句 記錄 statement,記錄語句,預設模式 mariadb 10.2.3 版本以下 日誌量較少 基於 行 記錄 row,記錄資料,日誌量較大,更加安全,建議使用的格式 混合模式 mixed,讓系統自行判定該基於哪種方式進行,預設模式 mariadb 10.2....

MysqL資料庫二進位制日誌

二進位制日誌 該日誌檔案會以二進位制形式記錄資料庫的各種操作,但是不記錄查詢語句。mysql 的二進位制日誌 binlog 可以說是 mysql 最重要的日誌,它記錄了所有的 ddl 和 dml 語句 除了資料查詢語句select show等 以事件形式記錄,還包含語句所執行的消耗的時間,mysql...

二進位制安裝MySQl資料庫

第一步 準備使用者 root centos useradd r d data mysql mysql第二步 建立目錄 mkdir data mysql chown mysql mysql data mysql第三步 準備二進位制程式解包 tar xf mariadb version linux x8...