如何查看mysql数据库操作记录日志?

说白了,查看MySQL数据库操作日志其实很简单,但复杂之处就在于选择合适的方法。
先说最重要的,开启通用查询日志,它记录了所有的客户端连接和执行的语句。
比如我们去年跑的项目中,我们通过这个日志发现了大量不必要的查询,大概有3 000个量级。
另外,启用并查看慢查询日志也很关键,慢查询日志记录了执行时间超过指定阈值的SQL语句。
例如,如果我们将 long_query_time 设置为 2 秒,我们可以捕获减慢数据库速度的查询。

我一开始以为普通查询日志和慢查询日志就够了,后来发现错了。
还有一件事。
使用performance_schema模式,可以提供更详细的性能数据。
例如,您可以查询 events_statements_current 表来了解当前正在执行的语句。

最后,使用二进制日志也是一种选择。
它记录了所有的数据变更语句,对于数据恢复和主从复制非常重要。
不过这个日志是以二进制格式存储的,需要使用mysqlbinlog工具来解析。

等等,还有一件事,启用这些日志可能会对服务器性能产生一定的影响,尤其是在高并发环境下。
因此,在生产环境中启用这些日志时,我认为根据实际需求进行调整是值得尝试的。

MySQL数据库访问日志分析_MySQL安全事件监控实用方法

说实话,在这个行业摸爬滚打了十年,MySQL日志确实是一件省心又省心的事情。
我刚接手一个旧系统,所有日志都打开了。
结果运维半夜给我打电话,说盘要爆了。
原来是有一条查询语句嵌套了8 00级JOIN,导致整个数据库变慢。
所以说拐杖是个好东西,但是如果你用不好的话,就够你喝一壶了。

我们先来说说GeneralLog。
你首先要明白这是什么。
我曾经管理过一家电子商务公司,他们打开 GeneralLog 两周进行全面审核。
经过两周的沉淀,日志文件快2 G了,每次备份都卡住了,因为MySQL要实时写日志。
说实话,这种场景下GeneralLog更适合临时调试。
例如,如果用户突然无法连接数据库,您可以直接干预,看看是否密码输入错误。
但不要真正成为主要的审核力量,这会耗尽你的服务器。

SlowQueryLog 相当方便。
我有一位客户以一种特别有趣的方式使用它 - 将 long_query_time 设置为 1 秒,然后创建一个脚本以每晚向技术组发送慢速查询。
结果呢?半年内发现了三个SQL漏洞,其中一个直接是由于有人故意编写过长的查询来测试权限而导致的。
但要注意,如果阈值设置得太低,您将收到大量“慢查询”电子邮件,最终所有人都会彻底屏蔽这些电子邮件。

说到工具,最好玩的是ELKStack。
去年,当我为一家初创公司设置系统时,我使用 Logstash 创建了一个脚本来提取 SQL 中的表名和字段名。
事实证明,他们实际上是在慢查询中直接检查密码表。
虽然只是测试,但是发现这种问题还是值得的。
但请注意,ELKStack 被配置为艺术创作。
如果日志调整不当,可能根本无法运行。

说到识别安全事件,我最害怕的就是“组合拳”攻击。
例如,有一个案例,有人在凌晨三点成功以普通用户身份登录,然后通过缓慢的搜索破坏了特定表的索引,最终触发了 GeneralLog 的密码字段。
这种事情光看单条日志是无法发现的。
所以我建议日志分析应该与防火墙、数据库权限控制结合使用。

在这一优化领域,有一个细节尤为重要。
有朋友使用GeneralLog时,发现所有的日志都是中文注释。
结果,服务器CPU 增加到2 00%。
后来改用英文注释,问题就解决了。
因此,规范日志格式可以省去很多麻烦。

最后,我们来谈谈 MariaDBAUditPlugin。
这东西比默认日志好在哪里?例如,在我的上次测试中,使用同一帐户直接连接数据库和执行查询之间的日志条目完全不同。
但要注意,它生成的日志量是可怕的,所以你必须借助工具来使用它。

总之,日志分析并不是完成系统安装的事情。
必须不断调整、优化。
我见过的最令人惊叹的团队甚至使 Kibana 的仪表板充满活力。
例如,如果它检测到特定IP的用户表检查数量突然增加十倍,就会自动触发电子邮件和电话警报。
技术是一种一旦使用就会超出其范围的东西。

图文结合带你搞懂MySQL日志之General Query Log(通用查询日志)

2 02 3 年,我的朋友在处理MySQL通用查询日志时遇到了一些问题。
他说,这个日志记录了用户的所有操作,非常关键。
它应该首先检查my.cnf或my.ini配置文件中的general_log状态和文件信息。
如果未启用日志记录,您必须调整设置并重新启动服务才能启用它。
服务器上的默认日志文件称为 hostname.log。
它告诉我日志是一个文本文件,每个服务器的日志内容是独立的。
为了管理磁盘空间,应定期使用 mysqladmin 命令删除或覆盖旧的查询日志。
在备份日志之前,必须首先对其进行复制或重命名。
它使用GreatSQL,万里数据库的MySQL分支,非常适合金融级应用程序。
如果你想交流技术,可以去GreatSQL社区。
那里有资源,以及奖项建议和评论以及年度奖牌获得者名单。
沟通方式包括微信、QQ群。
具体联系方式请向社区助理询问。
顺便说一句,他只是觉得要注意备份日志,以免丢失重要信息。
算了,你都知道的。