gpt4 book ai didi

mysql - 如何从 mysql-general.log 文件中 grep 与特定数据库相关的日志?

转载 作者:行者123 更新时间:2023-11-29 23:29:15 25 4
gpt4 key购买 nike

我需要从通用查询日志文件中过滤与特定数据库相关的日志,我如何使用 grep 来实现此目的或有什么方法可以做到这一点?

最佳答案

运行查询时,常规查询日志不会记录当前数据库。该信息根本不在日志中。唯一的可能性是表是否由查询中的架构名称限定,并且您可以将其解析出来。

慢查询日志确实记录每个查询的默认数据库。并且可以设置global long_query_time=0,让慢查询日志记录所有查询的信息,就像普通日志一样。

要过滤掉特定当前数据库的日志条目,我将使用 pt-query-digest,它是免费的,并且是 Percona Toolkit 的一部分。 .

例如,下面的命令读取慢查询日志,过滤当前数据库为“test”的条目,并以新的慢查询日志的格式输出。

pt-query-digest --filter '$event->{db} eq "test"' mysql-slow.log --no-report --output slowlog

但是,您应该知道,这只能过滤默认数据库为“test”时运行的查询。任何查询都可以通过使用架构名称限定表名称来访问其他数据库中的表,例如从 mydb.mytable 中选择*。但慢速日志可能仍会记录不同的默认数据库。

关于mysql - 如何从 mysql-general.log 文件中 grep 与特定数据库相关的日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26690544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com