
万答#21,如何查看 MySQL 数据库一段时间内的连接情况
查看方式
● 已知至少有两种方式可以实现
1.开启 general_log 就可以观察到
● 开启命令
● 执行一些操作
● 查看general_log日志信息,已经完整记录到了。
2.抓包
● 这里采用 MySQL Sniffer 进行抓包。
1.MySQL Sniffer 介绍
● MySQL Sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQL Server 端的请求,并格式化输出。
● 输出内容包括访问时间、访问用户、来源 IP、访问 Database、命令耗时、返回数据行数、执行语句等。有批量抓取多个端口,后台运行,日志分割等多种使用方式,操作便捷,输出友好。
● 开源出品:奇虎360
● github 地址:https://github.com/Qihoo360/mysql-sniffer/blob/master/README_CN.md
2.安装依赖包
3.安装命令
编译过程中出现一些问题,参考 https://www.cnblogs.com/kerrycode/p/14948381.html 解决,感谢!
3.查看帮助
● 安装后工具在 bin 目录下。
4.测试
1.实时抓取某端口信息并打印到屏幕
输出格式为:时间,访问用户,来源 IP,访问 Database,命令耗时,返回数据行数,执行语句。
● 控制台监听
● 执行一些操作
● 控制台输出
● 目前看有正常抓取到信息
2、可以把抓包的数据存储到文件
● 文件名称就是端口号,如果文件没内容,可以改成MySQL用户权限组试一下
● 其他功能就不一一测试了
● 特别注意,以上是在 MySQL5.6 版本测试获取的,在 8.0 版本中可能由于MySQL协议变更导致抓不到数据包,同时该工具存在一定的丢包情况。
免责声明
因个人水平有限,内容难免存在错漏之处,如有问题麻烦下方留言区回复告知,感谢!。
Enjoy GreatSQL :)
文章转载自公众号:GreatSQL社区
