首页 > 数据库 >wireshark实践 - 调试spring连接mysql失败问题

wireshark实践 - 调试spring连接mysql失败问题

时间:2024-01-18 21:58:41浏览次数:28  
标签:jdbc spring xxx server mysql wireshark

问题描述

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url:  jdbc:jdbc:mysql://122.224.147.xxx:90/dev?characterEncoding=utf8
    username: xxx
    password: xxx
    type: com.alibaba.druid.pool.DruidDataSource

url格式写错了(两个jdbc),然后呢,在spring项目中查询mysql时,一直卡死,没有返回。

刚开始没注意到配置文件格式错误了,于是用wireshark进行debug:
image

image
当我尝试用mysql协议解包时,提示我“解码器不完整”。
也就是说,jdbc向mysql server发请求时,用的不是mysql协议(正常是通过jdbc配置该告诉java,这是mysql还是pg。现在jdbc配置错了,所以用的协议也就错了)。

可以再验证下这个分析: 现在把jdbc配置改为pg,jdbc:postgresql://122.224.147.xxx:90/dev?characterEncoding=utf8,用pg协议去请求mysql server,看看会发生什么:
报错和上面的截图一致。

接下来改为正确的jdbc配置请求mysql,看下报文:
image

image

1、三次握手成功之后,服务器主动告知自己的版本号等信息
2、客户端发起登陆请求,把用户名、密码、db发送给server

总结

我们看到wireshark抓包对于排查问题真是一把利器。

标签:jdbc,spring,xxx,server,mysql,wireshark
From: https://www.cnblogs.com/xushengbin/p/17973489

相关文章

  • ubtunu安装mysql5.7
    1.官网:mysql下载链接官网地址 2.我们新建一个文件夹,路径/usr/local/mysql这里选择下载5.7.29的ubuntu版本注意是amd64不是arm64,或者执行下面命令wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar1解压下载下......
  • mysql8.0索引数据结构
    1、为什么使用索引假如给数据使用二叉树这样的数据结构进行存储,如下图所示2、索引及其优缺点2.1、索引概述2.2、优点(1)类似大学图书馆建书目索引,提高数据检索的效率,降低数据库的IO成本,这也是创建索引最主要的原因。(2)通过创建唯一索引,可以保证数据库表中每一行数据的唯一性......
  • Spring的@Async使用防坑
    很多人会直接只用@Async来执行异步操作。但是这里面有一个问题,如果都是用spring的默认实现,是有坑的。当我们开启 EnableAsync注解就可以使用@Async注解来执行异步操作了。我们现在通过EnableAsync注解去打开spring异步世界的坑。  走JDK的动态代理:      ......
  • python ssh连接mysql
    fromsshtunnelimportSSHTunnelForwarderimportpymysqlclassMySqlSSH:def__init__(self):self.server=SSHTunnelForwarder(ssh_address_or_host=('13.229.92.6',22),#sshhostssh_username='lenox......
  • mysql 被删除如何恢复
    恢复ibd使用-------OnDebian/Ubuntu/LinuxMint-------$sudoapt-getinstalltestdisk-------OnCentOS/RHEL/Fedora-------$sudoyuminstalltestdisk-------OnFedora22+-------$sudodnfinstalltestdisk-------OnArchLinux-------$pacman-Ste......
  • springmvc怎么进行异常处理
    局部异常处理局部异常处理是指当类中1发生异常时,由方法来处理,该方法的参数类型为Exception,而Exception是所有异常的父类,所以该参数来接受异常信息步骤说明1.在controller类中定义处理异常的方法,添加注解@ExceptionHandler,方法的擦桉树类型weiexception,并通过getMessage()方......
  • 我所关注的几个spring设计模式
    Spring框架中实现了许多的设计模式,而且都是非常优先的实现,这些值得我们学好好习。不过话说回来,我觉得自己只要关注几个即可:单例工厂代理适配器观察者委派在各种设计模式中,适配器和装饰器、代理模式其实都很类似,只是侧重点不同而已。spring的设计模式应用的很好,但spring......
  • SpringMVC中@pathVariable 为spring的注解,都可以用在Controller 层接受前段传递的数据
    @PathVariable主要接收http://host:port/path{参数值}数据 @pathVariable作为借口是,url是http"//ww.yoodb.com/user/getUserById/2 @RequestParam主要用于接受http://host:port/path?参数名=值数据值 @ResquesrParam请求接口时,url是http://www.yoodb.com/user/getUsrBy......
  • mysql内置函数
    Mysql常用内置函数数字函数函数名称作用ABS求绝对值SQRT求二次方根MOD求余数CEIL和CEILING两个函数功能相同,都是返回不小于参数的最小整数,即向上取整FLOOR向下取整,返回值转化为一个BIGINTRAND生成一个0~1之间的随机数,传入整数参数是,用来产生重......
  • logback-spring.xml 的配置及详解(直接复制粘贴可用)
    一、注意实现logback-spring.xml中有三处需要根据实际业务进行修改,直接查找“(根据业务修改)”即可进行定位。如果不想修改,直接复制粘贴到自己系统运行也可以,不会报错。二、配置及详解application.yml配置#日志配置logging:config:classpath:logback-spring.xmllogba......