环境说明
数据库:mysql
操作工具:mybatis,mybatis-plus,druid,P6Spy
问题查找
从错误直观分析是显示数据库类型不支持,为null,那为什么以前没用P6Spy不会出现这种情况,初步判断是P6Spy进行代理的时候出了问题,接着看错误代码显示是WallFilter出现了问题,那这个时候就好找了,直接进入到该类里面,发现以下代码
elseif(rawUrl.startsWith(“jdbc:mysql:”) || rawUrl.startsWith(“jdbc:cobar:”)
|| rawUrl.startsWith(“jdbc:log4jdbc:mysql:”)) {
returnMYSQL;
问题的根据找到了,druid从url的前缀获取dbType,但是我们现在的url变成了这样子,咱们的前缀被我们采用P6Spy进行了代理,所以获取不到了
jdbc:p6spy:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
问题解决
既然是WallFilter出现了问题,那我们直接解决掉这个WallFilter即可
替换前:
filter-class-names:stat,slf4j,wall
替换后:
filter-class-names:stat,slf4j
作者:互联网应用架构
链接:https://www.jianshu.com/p/7d0707de89b0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。