前提
MySQL開啟了binlog日志
操作
1. 查看MySQL是否開啟binlog(進mysql操作)
mysql> show variables like 'log_bin%';
2. 查詢binlog文件名
mysql>show master status(進mysql操作)
3. 查mysqlbinlog工具的位置(mysql自帶,用來查看二進制日志)(系統目錄查看,不進mysql)
(MySQL二進制文件直接打開是看不懂的,需要用這個自帶的查看工具查看)
[root@iZ25f7emo7cZ /]# find / -name mysqlbinlog
4. 查找mysql-bin.000007文件位置(系統目錄查看)
find / mysql-bin.000007
5. 將mysql日志內容輸入某個文件中.(-v顯示sql語句)
先進入mysqlbinlog操作目錄下,進入上面所述第三步文件目錄
將目標文件拷貝出來用sublime,editplus等工具,搜索相關的sql即可
[root@iZ25f7emo7cZ bin]# ./mysqlbinlog ./usr/local/mysql/data/mysql-bin.000007 -v /a.txt
或者
[root@iZ25f7emo7cZ bin]# ./mysqlbinlog ./usr/local/mysql/data/mysql-bin.000007 -v --result-file=/usr/local/a.txt
--------------------------------------------------------------------------END-------------------------------------------------------------------------------
文末附上幾個可能用得上的查詢日志的條件命令示例
1、查詢時間段內日志的執行內容
mysqlbinlog --start-datetime='2018-01-08 02:01:00' --stop-datetime='2018-01-08 02:30:10' -d test /var/lib/mysql/mysql-bin.000170 -v
2、查詢時間段內日志中執行的刪除語句
mysqlbinlog --start-datetime='2018-01-08 02:01:00' --stop-datetime='2018-01-08 02:30:10' -d test /var/lib/mysql/mysql-bin.000170 -v|grep DELETE -A 5
3、統計時間段內日志中執行的刪除語句
mysqlbinlog --start-datetime='2018-01-08 02:01:00' --stop-datetime='2018-01-08 02:30:10' -d test /var/lib/mysql/mysql-bin.000170 -v|grep DELETE |wc -l