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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:39:24