在MySQL Bin日志中搜索查询

3phpmpom  于 2023-05-28  发布在  Mysql
关注(0)|答案(4)|浏览(145)

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

4sup72z8

4sup72z81#

使用mysqlbinlog - nix或mysqlbinlog.exe - windows

$bash>mysqlbinlog mysql_bin.log > mysql_bin.txt

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

ztmd8pv5

ztmd8pv52#

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

gzszwxb44#

赞成的答案对我没有帮助。原因是mysqlbinlog使用BINLOG语句,该语句可由服务器读取,并且不能用于过滤查询。
但幸运的是,有-v选项,它重建了查询并允许进行搜索。此选项适用于MySQL 5.7和8。
使用此命令检查 mytable 是否已更新:

mysqldump -v mysql-bin.log | grep UPDATE | grep mytable

相关问题