使用tshark捕捉本机发出的sql命令

开发使用的是测试服务器 但经常有查看实际执行的sql的需求 如

  • 查看某一服务端接口涉及到哪些sql操作

  • 定位问题 测试反映页面查询不到结果 看一下实际的sql中是否包含了什么隐式的查询条件 如is_publish=1

  • 验证orm框架实际有没发出查询请求, 还是使用了本地的缓存。

  • 等等

有没工具可以监控本地发出的sql呢? 就像使用Charles等工具可以清楚的查看Http请求和响应一样。搜索了一下还真有这样的工具 如下所示

# 在终端一中执行下面的命令
tshark -i en0 -d tcp.port==3306,mysql -T fields -e mysql.query 'port 3306'
Capturing on 'Wi-Fi'

另一终端连接测试服务器并执行几条查询命令 可以看到终端一中有对应的sql输出

select version()


select now()

美中不足的是会有一些多余的空行输出。 目前还不知有什么办法可以去掉空行。
另外使用上面的命令监控发给本机服务器的query sql失败, 不知是不是版本的原因。 本机使用的是5.7.12

#终端一
 tshark -i lo -d tcp.port==3306,mysql -T fields -e mysql.query 'port 3306'
Capturing on 'Loopback'
#终端二
mysql -h127.0.0.1 -u root -p
select version();
select now();
show databases;
# 终端一中除了空行外无任何输出? 是mysql版本原因吗? 本地用的是5.7.12

参考文档

https://www.linuxsysadmintutorials.com/how-to-sniff-mysql-traffic-on-a-database-server.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值