2010-10-08 89 views
5

是否可以查询特定查询的mysql bin日志?例如,假设我想知道是否有人在过去一小时内做了特定的查询(例如'Update tableX where userName ='bob'“),我只想看看最近是否运行了一个特定的查询.....搜索MySQL Bin日志以查询

+1

其实,UPDAT E不是查询。 SELECT是一个查询。 – DOK 2010-10-08 12:06:51

回答

6

使用mysqlbinlog可以 - Unix或者mysqlbinlog.exe - 窗户

$bash>mysqlbinlog mysql_bin.log > mysql_bin.txt 

转换后,您可以在mysql_bin.txt搜索DML

0

也许MySQL general query log可以帮助你

+0

其实我已经阅读过,只能看到像开始和结束时间搜索的选项。我希望避免将整个多千兆字节bin日志写入磁盘,然后不得不grep它。 – David 2010-10-08 12:50:31

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

考虑提供原始帖子的解释。虽然信息可能有点模糊,但你的回答有点不清楚。请向OP解释为什么这会有所帮助 – nomistic 2015-09-19 13:26:22