抓取mysql redis(mongodb http等协议并打印语句)
句子大全 2023-09-07 05:24:01
我们在开发过程中经常会请求mysql,redis,mongodb等数据库,调试程序一般会打印出相应的数据库语句,但是有的时候我们用一些很笨重的框架,因为封装程度比较高打印一个sql语句都会非常麻烦,而且还会经常切换代码输出。
这里介绍一个可以监听端口非浸入式抓取sql语句,redis语句,mongodb语句等。
方便项目调试数据库请求。
抓包解析工具:
github.com/40t/go-sniffer
支持 MacOS \ Linux \ Unix 系统
MacOS为例
$ go get -v -u github.com/40t/go-sniffer
$ cp -rf $(go env GOPATH)/bin/go-sniffer /usr/local/bin
$ go-sniffer
三条语句即可运行
其中下图为我们本地端口,我们指定要抓取的接口即可。
抓取端口为en0的mysql语句
go-sniffer en0 mysql -p 3306
一般MacOS中 lo0 代表 127.0.0.1
如果命令没有抓到可能是监听的设备号不对,可以换一下监听的设备号再试一下。
原理
go-sniffer 监听网卡设备抓取项目与mysql通信的包,根据mysql官方文档提供的包协议格式,拼凑出语句,redis、mongodb等同理。
阅读剩余内容