1. 前言
2. 实现
3. 功能
4. 使用
5. 项目地址
网上其实有很多类似的MysqlSql语句监控工具,肯定有人问为什么要造轮子。
很简单,因为在平时的代码审计中,需要一个跨平台友好、功能简单实用、并且可以支持监控错误SQL语句的小工具。
拒绝臃肿,拒绝依赖多余的工具(比如tail.exe)。
我所知道的有两种方式来做到Mysql执行记录监控
简单的方式,打开mysql general_log,实现类似tail的功能,循环读取日志文件。
专业的方式,建立一个proxy,监测client与mysql的通信。
此工具选择第一种简单的方式
输出Mysql所有的SQL语句执行记录,关键点循环读取日志文件利用
org.apache.commons.io.input Tailer类https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/input/Tailer.html
高亮显示报错语句,这点在审计中寻找注入点很有必要,具体实现利用
druid SQL语法校验https://github.com/alibaba/druid/wiki/SQL-Parser
mysql 高版本 general_log 不会记录执行错误的SQL语句到日志,需要在配置文件中[mysqld]中设置log-raw=1
本地测试了三个mysql版本
mysql5.5 不需要log-raw
mysql7.5 需要log-raw
mysql8.0.16 需要log-raw
mysql≥ 8.0.19 可以通过系统变量log_raw设置
https://github.com/J0hnWalker/MysqlMonitor
版权声明:
本文由团队成员Walker@MS509原创,转载请注明来源。
↓↓↓ 点击"阅读原文" 【查看更多信息】