2010-10-08 36 views
5

Belirli bir sorgu için mysql bin günlüğünü sorgulamak mümkün mü? Örneğin, son bir saatte herhangi birinin belirli bir sorgulama yapıp yapmadığını öğrenmek istiyorum ('TableX Güncelleme userName =' bob '"gibi) Sadece belirli bir sorgunun yakın zamanda çalışıp çalışmadığını görmek istiyorum .....Sorgu için MySQL Bin Günlüğünü Arama

+1

Aslında updat E bir sorgu değil. SELECT bir sorgudur. – DOK

cevap

6

kullanın mysqlbinlog -. nix veya mysqlbinlog.exe - pencere

$bash>mysqlbinlog mysql_bin.log > mysql_bin.txt 

Dönüşümden sonra sen mysql_bin.txt içinde DML arama yapabilirsiniz

0

Belki MySQL general query log size yardımcı olabilir

+0

Aslında bunu zaten okudum ve sadece başlangıç ​​ve bitiş zamanlarına göre arama gibi şeylerin seçeneklerini gördüm. Tüm çoklu gigabayt günlük kütüğünün diske yazılmasını ve daha sonra grep olması gerektiğinden umuyordum. – David

1
mysqlbinlog ${1} |grep -i 'update\|insert\|delete\|replace\|alter' | tr ‘[A-Z]’ ‘[a-z]’|sed -e '/*/d' | sort | uniq -c | sort -nr 
+2

Orijinal yayına bir açıklama sağlamayı düşünün. Bilgi biraz belirsiz olsa da, cevabınız biraz belirsizdir. Lütfen OP'ye bunun neden yardımcı olacağını açıklayın – nomistic