Spring Boot应用连接MS SQL Server失败问题求助
解决Spring Boot连接MS SQL Server失败的问题
根据你提供的错误信息和配置,核心问题是主机名sqlsrv无法被解析,同时命名实例的连接依赖的服务或端口可能存在配置问题,以下是具体排查和解决步骤:
1. 修正JDBC URL格式
你的spring.datasource.url存在两个关键问题:
- 在
application.properties中,反斜杠\需要转义为\\,否则会被当作特殊字符处理; sqlsrv不是有效的主机名,若连接本地SQL Server实例,直接使用localhost或.(代表本地主机)更可靠。
修正后的URL示例:
# 本地命名实例写法(转义反斜杠) spring.datasource.url=jdbc:sqlserver://localhost\\DESKTOP-ND9850L;databaseName=benjamin # 或者用点号代替localhost spring.datasource.url=jdbc:sqlserver://.\\DESKTOP-ND9850L;databaseName=benjamin
如果知道实例的具体端口号(比如默认的1433),可以直接指定端口跳过SQL Server Browser服务,写法如下:
spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=benjamin
2. 验证SQL Server Browser服务状态
使用命名实例连接时,必须确保SQL Server Browser服务处于运行状态:
- 按下Win+R,输入
services.msc打开Windows服务管理器; - 找到
SQL Server Browser服务,确认其状态为正在运行; - 若未运行,右键启动,并设置启动类型为
自动,避免重启后失效。
3. 检查防火墙端口配置
确保UDP 1434端口未被防火墙拦截:
- 打开Windows Defender防火墙,进入
高级设置; - 添加入站和出站规则,允许UDP协议的1434端口通信;
- 若使用第三方防火墙,同样需要开放该端口。
4. 确认SQL Server核心配置
- 身份验证模式:确保SQL Server设置为
混合模式(SQL Server和Windows身份验证),否则用户名密码无法登录; - 用户权限:验证
benjamin用户拥有访问benjamin数据库的权限,且密码pass1234正确; - 远程连接权限:若连接远程实例,确认SQL Server已启用远程连接(本地实例可跳过)。
内容的提问来源于stack exchange,提问作者Benjamin Sinzore
相关产品推荐
相关产品推荐

