本地环境:win7 mysql5.6 python3
感谢 秦莫天 的解答:
Mysql 允许外连
https://www.cnblogs.com/QinTO/p/11711915.html
设置mysql允许外部连接访问
https://blog.csdn.net/yyws2039725/article/details/106412851
设置mysql外链很重要,影响到下面工具能否监控到数据库指令。
我在没设置好外链的时候,有的工具监控不到数据,或者只能监控到cmd下的mysql命令行或者数据管理工具(Navicat)里面的操作,网站执行的查询没有监控到。
一、misskiki / MysqlLogmonitor.py
首先觉得最有效的就是这个了:
https://github.com/misskiki/MysqlLogmonitor
修改代码:
配置好mysql_config.ini之后运行:
python MysqlLogMonitor.py
效果如下:
这个结果会输出到同目录下mysql_log
不论是网页执行的查询还是工具执行的语句,都能监控输出。
就是格式有些乱,查看语句不是很明了
二、TheKingOfDuck / MySQLMonitor.jar
https://github.com/TheKingOfDuck/MySQLMonitor
一开始启动报错:
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.
查询到:https://www.cnblogs.com/generalli2019/p/11512052.html
需要修改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
https://github.com/J0hnWalker/MysqlMonitor
https://www.ms509.com/2020/07/13/MysqlLogMonitor/
文章中提到:
打开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'
更多了解https://blog.csdn.net/gocuber/article/details/80193350
四、MysqlLog.jar
https://download.csdn.net/download/weixin_44781305/12596956
java -jar MysqlLog.jar
需要手动点击更新获取数据,如果开源可以修改优化就好了
五、Mysql监控 --Seay代码审计系统
同上,就是多个搜索
【MySQL报错】ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39.
https://www.cnblogs.com/xphdbky/p/7151923.html
更多有待测试:
https://www.cnblogs.com/panda-sweets/p/10064368.html
https://blog.csdn.net/wuyoudeyuer/article/details/106294975
MySQL监控全部执行过的sql语句
https://blog.csdn.net/gocuber/article/details/80193350
2019年最好用的6款数据库监控工具