开发者社区> 问答> 正文

可有抓包工具可以抓取Java Client与Mysql Server之间通信的数据 ?报错

Jdbc创建连接过程中,在某几处加了断点,于是就一直报错:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 118 milliseconds ago.  The last packet sent successfully to the server was 12 milliseconds ago.

找了半天也没找到到底在哪设置的超时,于是想能否通过抓包工具,来查看Java client 与Mysql Server之间的通信数据.因为单单看query log的话,信息量太少了,如建立连接看到的只有这么一个简单的输出:

150507 21:58:10	   22 Connect	root@localhost on



展开
收起
爱吃鱼的程序员 2020-06-14 16:09:17 556 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Ubuntu系统中使用Wireshark倒是挺方便,jdbc代码:

    Stringurl="jdbc:mysql://localhost:3306";Connectionconn=java.sql.DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement();Stringsql="select'hello';select'world'";stmt.execute(sql);

    使用Wireshark抓包截图:

    Linux上确实很方便使用WireShark监听本地loopback的服务,比如分析PHP的mysqli绑定参数查询的网络通信过程:

    $mysqli=newmysqli("127.0.0.1","user","pass","punbb");
    $query="SELECT`username`FROM`pb_users`WHERE`id`=?";
    $stmt=$mysqli->prepare($query);
    $stmt->bind_param('i',$id);
    $id="2";
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($name);
    while($stmt->fetch())echo$name;
    $stmt->close();
    $mysqli->close();

    2020-06-14 16:09:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像