是否可以在mysql bin日志中查询特定的查询?例如,假设我想知道在过去的一个小时内是否有人做了一个特定的查询(比如“Update tableX where userName = 'bob'”)。我只是想看看最近是否运行了一个特定的查询.....
4sup72z81#
使用mysqlbinlog - nix或mysqlbinlog.exe - windows
$bash>mysqlbinlog mysql_bin.log > mysql_bin.txt
转换后您可以在mysql_bin. txt中搜索DML
ztmd8pv52#
mysqlbinlog ${1} |grep -i 'update\|insert\|delete\|replace\|alter' | tr ‘[A-Z]’ ‘[a-z]’|sed -e '/*/d' | sort | uniq -c | sort -nr
y0u0uwnf3#
MySQL general query log可以帮助您。
gzszwxb44#
赞成的答案对我没有帮助。原因是mysqlbinlog使用BINLOG语句,该语句可由服务器读取,并且不能用于过滤查询。但幸运的是,有-v选项,它重建了查询并允许进行搜索。此选项适用于MySQL 5.7和8。使用此命令检查 mytable 是否已更新:
mysqlbinlog
-v
mysqldump -v mysql-bin.log | grep UPDATE | grep mytable
4条答案
按热度按时间4sup72z81#
使用mysqlbinlog - nix或mysqlbinlog.exe - windows
转换后您可以在mysql_bin. txt中搜索DML
ztmd8pv52#
y0u0uwnf3#
MySQL general query log可以帮助您。
gzszwxb44#
赞成的答案对我没有帮助。原因是
mysqlbinlog
使用BINLOG语句,该语句可由服务器读取,并且不能用于过滤查询。但幸运的是,有
-v
选项,它重建了查询并允许进行搜索。此选项适用于MySQL 5.7和8。使用此命令检查 mytable 是否已更新: