SpringBoot应用无法连接SQL Server且8080端口被占用求助
问题排查方案
一、8080端口被占用但netstat未检测到进程的解决步骤
- 用精准命令查询端口关联进程:
Windows系统执行:netstat -ano -p tcp | findstr ":8080"
Linux/macOS系统执行:ss -tulpn | grep :8080
该命令能显示所有关联的进程ID(PID),包括处于半连接状态的隐藏连接。 - 检查Windows端口预留:
执行netsh int ipv4 show excludedportrange protocol=tcp,如果8080在输出的预留范围内,说明系统预留了该端口,可选择修改预留范围或直接更换SpringBoot端口。 - 快速绕过方案:在
application.properties中添加配置server.port=8081,更换为未被占用的端口。
二、SQL Server Express连接超时的排查步骤
- 启用SQL Server TCP/IP协议:
打开SQL Server配置管理器,依次进入「SQL Server网络配置」→「SQLEXPRESS的协议」,确保「TCP/IP」状态为启用。 - 确认TCP端口配置:
双击「TCP/IP」进入属性,切换到「IP地址」标签,找到「IPAll」节点,确认「TCP端口」为默认的1433(若使用动态端口,需记下端口号并在连接串中指定)。 - 修正数据库连接串:
application.properties中的连接URL需符合格式:
注意实例名前的反斜杠需转义,或使用正斜杠替代;若SQL Server不在本地,需替换spring.datasource.url=jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=你的数据库名称;encrypt=falselocalhost为对应IP,并确保网络可达。 - 检查防火墙设置:
临时关闭Windows防火墙测试连接,若恢复正常,需在防火墙上添加SQL Server端口(默认1433)的入站规则。 - 验证SQL Server服务状态:
在Windows服务列表中找到「SQL Server (SQLEXPRESS)」,确认服务处于正在运行状态。 - 核对依赖配置:
确保pom.xml中包含正确的SQL Server驱动依赖,示例:
驱动版本需与SQL Server版本兼容(如SQL Server 2019推荐使用9.x及以上版本)。<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <scope>runtime</scope> </dependency>
内容的提问来源于stack exchange,提问作者asymmonds
相关产品推荐
相关产品推荐

