1. 程式人生 > >MySQL二進位制日誌

MySQL二進位制日誌

簡介

二進位制日誌包含資料庫的所有更改的記錄,包括資料和結構,以及每個語句執行的時間。它由一組二進位制日誌檔案和索引組成。 這意味著將記錄諸如CREATE,ALTER,INSERT,UPDATE和DELETE之類的語句,但不會記錄對資料沒有影響的語句,例如SELECT和SHOW。如果要記錄這些(以效能為代價),請使用查詢日誌。 二進位制日誌以二進位制文字格式儲存,因此無法使用常規編輯器檢視。需要用mysqlbinlog工具檢視

開啟方式

在配置檔案/etc/my.cnf中的mysqld配置段加入一行

log-bin=bin.log  #這裡的bin.log為二進位制日誌檔名預設在MySQL的data目錄下,也可以寫絕對路徑

這裡會出現 可以看到多了兩個檔案一個是bin.index是二進位制的索引檔案,而bin後面有一串數字的就是二進位制日誌了。因為這裡配置的時候寫了檔案的副檔名(.log)這時候預設會被忽略這個副檔名。 每次伺服器啟動,重新整理日誌或者達到了最大的大小(由max_binlog_size配置項確定)時,都會建立一個帶有新副檔名的新二進位制日誌。

檢視二進位制日誌

mysql> SHOW BINARY LOGS;
mysql> SHOW MASTER LOGS;

在這裡插入圖片描述

檢視所有二進位制檔案以及檔案大小 在這裡插入圖片描述

mysqlbinlog

簡介

MySQL的二進位制日誌是一組包含“事件”的檔案,表示對MariaDB資料庫內容的修改。這些事件以二進位制格式編寫。該mysqlbinlog可以實用用於檢視純文字這些事件。

語法

shell> mysqlbinlog [options] log_file ...

常用選項

  • -h, --host=name 指定資料庫伺服器
  • -p[passwd], --password[=passwd] 用於連線遠端伺服器的密碼
  • -P num, --port=num 連線資料庫的埠
  • -S, --socket=name 連線資料庫的套接字檔案
  • –start-datetime=datetime 讀取在這個日期時間之後的binlog
  • -j pos, --start-position=pos 開始讀取binlog的位置
  • –stop-datetime=name 讀取在這個日期時間之前的binlog
  • -u, --user=username 連線資料庫的使用者名稱

示例

檢視 /usr/local/mysql/data/bin.000001 日誌
mysqlbinlog  /usr/local/mysql/data/bin.000001
從8215位置開始到7917位置結束,檢視 /usr/local/mysql/data/bin.000001日誌
mysqlbinlog --start-position=7917 --stop-position=8215 /usr/local/mysql/data/bin.000001  
檢視2018-11-2 00:54:20這個時間開始的binlog
mysqlbinlog --start-datetime='2018-11-2 00:54:20'  /usr/local/mysql/data/bin.000001