使用mysqlbinlog查看二進制日誌文件mysql
# mysqlbinlog --help 幫助文檔sql
經常使用選項:數據庫
-d, --database=name 指定數據庫名稱,只列出指定的數據庫相關操做 -o, --offset=number 忽略掉日誌中的前number行 -r, --result-file=name 將輸出的文本格式日誌輸出到指定文件 -s, --short-form 顯示簡單格式,省略掉一些信息 --set-charset=char-name 在輸出爲文本格式時,在文件第一行加上set names char-name,這個選項在某些狀況下裝載數據時很是有用 --start-datetime=name --stop-datetime=name 指定日期間隔內的全部日誌 --start-position=# --stop-position=# 指定位置間隔內的全部日誌session
[root@db02 data]# ls mysql_bin.0* mysql_bin.000001 mysql_bin.000002使用cat查看都是亂碼的,要使用mysqlbinlog 優化
[root@db02 data]# cat mysql_bin.000001 \þbinŔ̚tx5.6.36-logŔ̚8 n¯±̚ @std!!!testBEGINC)¯±̚.턁teststunد±̚ 2 Fÿþþþǒ꯱̚?Y -* ²̚ @std!!!testBEGIN¯ ²̚.µFteststu ²̚(ہFÿþ䃮 ²̚ p²̚H @std!!!testBEGINH²̚.rFteststuսݴp²̚(Fÿp²̚¹c0¦ºxp²̚ @std!!!testBEGIN䈍̚./FteststuM¤ް²̚(WFÿþ鈪9p²̚veؚZH @std!!!testBEGINc ,²̚.ꂆteststun0®S²̚(Fÿþ²̚3k{\˗²̚H @std!!!testBEGIN§Z[²̚.©Fteststu²̚(τFÿþp6*²̚h[root@db02 data]# mysqlbinlog mysql_bin.000001spa
[root@db02 data]# mysqlbinlog mysql_bin.000001 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #180411 12:53:25 server id 1 end_log_pos 120 CRC32 0x6ed142e0 Start: binlog v 4, server v 5.6.36-log created 180411 12:53:25 at startup ROLLBACK/*!*/; ....................-d 只顯示對test數據庫的操做日誌 日誌
[root@db02 data]# mysqlbinlog -d test mysql_bin.000001-o選項 忽略前3個操做code
[root@db02 data]# mysqlbinlog mysql_bin.000002 -o 3
顯示兩個時間點之間的日誌2018/04/11 15:00:45 ~ 2018/04/11 15:01:35 orm
[root@db02 data]# mysqlbinlog mysql_bin.000001 --start-datetime='2018/04/11 15:00:45' --stop-datetime='2018/04/11 15:01:35'開始日期和結束日期能夠只寫一個;server
若是隻寫開始日期,表示範圍是開始日期到日誌結束;
若是隻寫結束日期,表示範圍是日誌開始到指定的日期結束
--start-position=1903 --stop-position=2020
[root@db02 data]# mysqlbinlog mysql_bin.000001 --start-position=1903 --stop-position=2020
注:此博文僅供參考!
參考書籍:《深刻淺出MySQL 數據庫開發、優化與管理維護》(第二版)