MySQL二進位制日誌
阿新 • • 發佈:2018-12-19
簡介
二進位制日誌包含資料庫的所有更改的記錄,包括資料和結構,以及每個語句執行的時間。它由一組二進位制日誌檔案和索引組成。 這意味著將記錄諸如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