测试了几款mysql监控工具
本地环境:win7 mysql5.6 python3
感谢 的解答:
Mysql 允许外连 https://www.cnblogs.com/QinTO/p/11711915.html 设置mysql允许外部连接访问 https://blog..net/yyws2039725/article/details/106412851
设置mysql外链很重要,影响到下面工具能否监控到数据库指令。
我在没设置好外链的时候,有的工具监控不到数据,或者只能监控到cmd下的mysql命令行或者数据管理工具(Navicat)里面的操作,网站执行的查询没有监控到。
一、misskiki / MysqlLogmonitor.py
首先觉得最有效的就是这个了:
https://github.com/misskiki/MysqlLogmonitor
修改代码:
配置好之后运行:
python MysqlLogMonitor.py
效果如下:
这个结果会输出到同目录下mysql_log
不论是网页执行的查询还是工具执行的语句,都能监控输出。
就是格式有些乱,查看语句不是很明了
二、TheKingOfDuck / MySQLMonitor.jar
一开始启动报错:
The server time zone value ???ú±ê×??±?? is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
查询到:
需要修改mysql的配置my.ini文件,添加:
default-time_zone = +8:00 #然后再增加一行 log_output=TABLE
使用管理员启动CMD,进入mysql数据库,输入命令: show variables like "%time_zone%"; 结果 +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | | | time_zone | +08:00 | +------------------+--------+
运行:
java -jar MySQLMonitor.jar -h 127.0.0.1 -user root -pass root
很多查询没有监控到,不是很好用.
三、MysqlLogMonitor.jar
文章中提到:
打开mysql general_log,实现类似tail的功能,循环读取日志文件。
mysql 高版本 general_log 不会记录执行错误的SQL语句到日志,需要修改mysql的配置my.ini文件,添加:
#去除另一个软件的配置,以免不成功 #log_output=TABLE default-time_zone = +8:00 log_raw=1 #或者:log-raw=1
启动:
java -jar MysqlLogMonitor.jar
select @@datadir show variables like general_log set global general_log_file=E:/WebSite/PHP/BtSoft/mysql/MySQL5.6/data/2021-04-19.txt
更多了解
四、MysqlLog.jar
https://download..net/download/weixin_44781305/12596956
java -jar MysqlLog.jar
需要手动点击更新获取数据,如果开源可以修改优化就好了
五、Mysql监控 --Seay代码审计系统
同上,就是多个搜索
更多有待测试:
MySQL监控全部执行过的sql语句
2019年最好用的6款数据库监控工具