You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.6.6升级2.7.1后r2dbc-mysql驱动报错问题咨询

问题根因

报错核心是运行时类路径下没有适配Spring Boot 2.7.x版本的MySQL R2DBC驱动实现,R2DBC SPI加载时找不到对应mysql驱动的ConnectionFactory,只能识别到连接池组件pool,所以抛出异常。
Spring Boot 2.6.x及更早版本默认依赖管理中绑定的是社区维护的dev.miku:r2dbc-mysql,该版本后续已经停止维护。从Spring Boot 2.7.0开始,官方将内置管理的R2DBC MySQL驱动切换为持续迭代维护的官方分支io.asyncer:r2dbc-mysql。旧的dev.miku版本和2.7.x内置的r2dbc-spi 0.9.x存在API不兼容问题,保留旧依赖会触发编译错误,直接注释掉依赖又会导致驱动缺失,就会出现你看到的报错。

解决步骤
  • 完全移除build.gradle中原有dev.miku:r2dbc-mysql的依赖配置,不要保留注释或者残留引用
  • 替换为Spring Boot 2.7.x官方管理的兼容版R2DBC MySQL驱动,不需要手动指定版本,直接引入即可:
runtimeOnly 'io.asyncer:r2dbc-mysql'
  • 原有spring.r2dbc配置下的数据库地址、端口、用户名、密码、库名等连接参数不需要修改,如果之前加过和旧驱动强绑定的自定义驱动类配置,直接删除即可
  • 重新同步Gradle依赖,清理之前的构建缓存后重启项目,驱动就能正常加载。
排错提示

如果替换依赖后仍存在驱动加载异常,可以执行gradle dependencies查看依赖树,排查是否有其他第三方依赖传递引入了旧版dev.miku:r2dbc-mysql,如果存在的话将旧依赖排除,避免两个不同实现的R2DBC MySQL包同时存在引发SPI加载冲突。

内容的提问来源于stack exchange,提问作者user1578872

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 15:06:21