MySQL bin日誌解析

2022-08-30 06:51:09 字數 989 閱讀 7847

目錄

很多時候,當我們的業務資料產生了不正常的變化,但卻無法得知這類操作是在**進行,並且如何進行,單單從程式當面排查很費力。那麼就需要通過分析資料庫日誌來得到歷史執行sql,根據sql執行邏輯來確認**位置,進而確認是否是bug,亦或是誤操作等。

binlog是mysql server層記錄的二進位制日誌檔案,用於記錄mysql的資料更新或者潛在更新(比如delete語句執行刪除而實際並沒有符合條件的資料),select或show等不會修改資料的操作不會記錄在binlog中。

binlog檔案是我們得到歷史執行sql的基礎,但是僅僅只能得到歷史的dml&ddl操作,而不能得到查詢操作。

由於binlog是二進位制檔案,所以無法直接使用文字開啟。所以需要通過mysqlbinlog解析二進位制檔案後才可讀。

由於windows下面無法使用管道命令如此簡潔的提取出sql,所以這邊就只寫linux下的使用方法。我平時的做法會將windows下面的binlog拷貝到linux下,再利用linux的管道命令解析。

linux下常見使用命令:

mysqlbinlog /data/mysql_data/bin.000008 --database test --base64-output=decode-rows -vv --skip-gtids=true |grep -c 2 -i "delete from audit_orga_specialtype" > /opt/sql.log

結果示例:

對於常見的資料庫(sql server 、oracle 、mysql)來說,都具有類似相同的日誌來記錄歷史sql,不同的只是日誌的記錄方式和解析方法:

mysql bin日誌 MySQL bin日誌解析

很多時候,當我們的業務資料產生了不正常的變化,但卻無法得知這類操作是在 進行,並且如何進行,單單從程式當面排查很費力。那麼就需要通過分析資料庫日誌來得到歷史執行sql,根據sql執行邏輯來確認 位置,進而確認是否是bug,亦或是誤操作等。一.binlog簡介 binlog 是mysql server...

mysql bin日誌檔案清理

如果你的mysql伺服器不需要做主從複製的話,建議通過修改my.cnf檔案,來設定不生成這些檔案,只要刪除my.cnf中的下面一行就可以了。log bin mysql bin 如果你需要複製,最好控制一下這些日誌檔案保留的天數,可以通過下面的配置設定日誌檔案保留的天數 expire logs day...

如何刪除mysql bin 0000X 日誌檔案

一 資料庫版本 server version 5.1.40 二 進入資料庫 root kt01 mysql uroot p enter password 輸入密碼 welcome to the mysql monitor.commands end with or g.your mysql conne...