使用Spring Data R2DBS连接MSSQL时无法获取连接的问题排查
解决Spring Data R2DBS连接MSSQL Kerberos认证的URI格式错误问题
问题根源
异常是因为R2DBS严格遵循URI规范,原配置中的反斜杠\属于URI authority段的非法字符,且R2DBS使用&作为参数分隔符(而非JDBC的;),导致URL解析失败。
可行解决方案
方案1:使用实例对应的端口号替换命名实例
先通过SQL Server配置管理器找到ZZZZZ实例对应的TCP/IP端口,然后修改URL为:
spring.r2dbc.url=r2dbc:mssql://AAAAAA.bb.myapp:端口号/mydb?integratedSecurity=true&authenticationScheme=JavaKerberos
方案2:通过instanceName参数指定命名实例
R2DBS MSSQL驱动支持通过instanceName参数传递命名实例,无需在主机后加反斜杠,修改后的URL为:
spring.r2dbc.url=r2dbc:mssql://AAAAAA.bb.myapp/mydb?instanceName=ZZZZZ&integratedSecurity=true&authenticationScheme=JavaKerberos
注意点
- R2DBS的URL参数必须用
&分隔,不能使用JDBC的; - 确保Kerberos相关配置(如krb5.conf、登录用户的票据)已正确设置,保证认证流程正常
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

