通过BINLOG日志查找指定日期的SQL语句_MySQL
bitsCN.com
通过BINLOG日志查找指定日期的SQL语句
在95数据库服务器查找posts.post_thread的postid=1652971,在 2013-02-24 日执行的对数据有修改的SQL语句
www.bitsCN.com
# grep datadir /etc/mysql/my.cnf
datadir = /ssd/mysql
# cd /ssd/mysql
# mysql -A -e "show master status " | awk 'NR==2{print $1}' | awk -F. '{print $1}'
mysqld-bin 这里的内容为mysqlbinlog日志的前缀,因为如果是从数据库,还会有replylog.
找Binlog日志,取前一天的最后一个日志,以及24号创建的所有的日志
# ls –l
…
-rw-rw---- 1 mysql mysql 1075302338 Feb 22 04:00 mysqld-bin.000035
-rw-rw---- 1 mysql mysql 1092104643 Feb 22 14:10 mysqld-bin.000036
-rw-rw---- 1 mysql mysql 1073742083 Feb 23 00:06 mysqld-bin.000037
-rw-rw---- 1 mysql mysql 1073742129 Feb 23 05:26 mysqld-bin.000038
-rw-rw---- 1 mysql mysql 1073742102 Feb 23 15:30 mysqld-bin.000039
-rw-rw---- 1 mysql mysql 1073742095 Feb 24 01:36 mysqld-bin.000040
-rw-rw---- 1 mysql mysql 1076478877 Feb 24 09:00 mysqld-bin.000041
-rw-rw---- 1 mysql mysql 1087015180 Feb 24 15:00 mysqld-bin.000042
-rw-rw---- 1 mysql mysql 1073742090 Feb 25 01:31 mysqld-bin.000043
-rw-rw---- 1 mysql mysql 1073742037 Feb 25 08:47 mysqld-bin.000044
-rw-rw---- 1 mysql mysql 1073741919 Feb 25 15:45 mysqld-bin.000045
-rw-rw---- 1 mysql mysql 1073742218 Feb 26 03:36 mysqld-bin.000046
-rw-rw---- 1 mysql mysql 689342483 Feb 26 09:45 mysqld-bin.000047
…
这个时候我们需要分析的binlog日志为mysqld-bin.0000{39,4[0-2]}
# ls mysqld-bin.0000{39,4[0-2]}
mysqld-bin.000039 mysqld-bin.000040 mysqld-bin.000041 mysqld-bin.000042
# cat /root/findsql.sh
#!/bin/bash
BINLOGDIR=`cat /etc/mysql/my.cnf | grep datadir | awk '{print $3}'`
MYSQL="/usr/bin/mysql -A -e "
DATABASE="posts"
cd "${BINLOGDIR}"
BINLOGS=`ls mysqld-bin.0000{39,4[0-2]}`
for i in ${BINLOGS}
do
${MYSQL} "show binlog events in '${i}'" | grep "Query">>"${BINLOGDIR}/${i}.sql"
done
# chmod 755 /root/findsql.sh
先把binlog日志导出来,别做任何修改。至少这样的语句我们就认识了,然后再来搜索我们需要的语句。 www.bitsCN.com
# /root/findsql.sh
# ls mysqld-bin.0000{39,4[0-2]}.sql
mysqld-bin.000039.sql mysqld-bin.000041.sql
mysqld-bin.000040.sql mysqld-bin.000042.sql
在这些SQL中对数据进行筛选,这里的筛选需要看你自己的能力了,
会awk sed grep这三个就够了,awk建议必会。grep平时用的也特别多,应该不难。
# cat /root/parsesql.sh
#!/bin/bash
for i in `ls mysqld-bin.0000{39,4[0-2]}.sql`
do
awk -F 'use `posts`; ' '{print $2}' $i | grep -v 'chapterclick=chapterclick' | grep -v 'novelscore=novelscore' | grep 1652971 >> 1652971.sql
echo $i
done
# chmod 755 /root/parsesql.sh
# /root/parsesql.sh
1652971.sql这个里面的内容就是我们最后的成果
bitsCN.com

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

HTML無法直接讀取資料庫,但可以透過JavaScript和AJAX實作。其步驟包括建立資料庫連線、發送查詢、處理回應和更新頁面。本文提供了利用JavaScript、AJAX和PHP來從MySQL資料庫讀取資料的實戰範例,展示如何在HTML頁面中動態顯示查詢結果。此範例使用XMLHttpRequest建立資料庫連接,發送查詢並處理回應,從而將資料填入頁面元素中,實現了HTML讀取資料庫的功能。

本站7月23日消息,華碩推出多款由AMDEPYC霄龍4004系列處理器驅動的伺服器與工作站級產品。本站註:AMD於5月推出AM5平台、Zen4架構的EPYC霄龍4004系列處理器,最高提供16核心3DV-Cache規格。 ASUSProER100AB6伺服器ASUSProER100AB6是一款搭載EPYC霄龍4004系列處理器的1U機架式伺服器產品,適用於IDC及中小型企業需求。 ASUSExpertCenterProET500AB6工作站ASUSExpertCenterProET500AB6是一款A

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。
