使用mysqlbinlog從二進位制日誌檔案中查詢mysql執行過的sql語句
前提
MySQL開啟了binlog日誌
操作
1. 檢視MySQL是否開啟binlog(進mysql操作)
mysql> show variables like 'log_bin%';
2. 查詢binlog檔名
mysql>show master status(進mysql操作)
3. 查mysqlbinlog工具的位置(mysql自帶,用來檢視二進位制日誌)(系統目錄檢視,不進mysql)
(MySQL二進位制檔案直接開啟是看不懂的,需要用這個自帶的檢視工具檢視)
[
4. 查詢mysql-bin.000007檔案位置(系統目錄檢視)
find / mysql-bin.000007
5. 將mysql日誌內容輸入某個檔案中.(-v顯示sql語句)
先進入mysqlbinlog操作目錄下,進入上面所述第三步檔案目錄
將目標檔案拷貝出來用sublime,editplus等工具,搜尋相關的sql即可
[
或者
[[email protected] 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